Merge "resourceloader: Unbreak ResourceLoaderImageModule's rasterization"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 5 Jun 2015 22:43:46 +0000 (22:43 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 5 Jun 2015 22:43:46 +0000 (22:43 +0000)
25 files changed:
includes/api/ApiExpandTemplates.php
includes/api/ApiParse.php
includes/api/ApiResult.php
includes/api/i18n/en.json
includes/api/i18n/ksh.json
includes/api/i18n/qqq.json
includes/api/i18n/zh-hant.json
includes/deferred/HTMLCacheUpdate.php
includes/deferred/LinksUpdate.php
includes/jobqueue/Job.php
includes/jobqueue/JobQueue.php
includes/jobqueue/JobQueueFederated.php
includes/jobqueue/JobRunner.php
includes/jobqueue/JobSpecification.php
languages/i18n/af.json
languages/i18n/be-tarask.json
languages/i18n/gl.json
languages/i18n/ksh.json
languages/i18n/lv.json
languages/i18n/nap.json
languages/i18n/pl.json
languages/i18n/sa.json
languages/i18n/zh-hant.json
tests/phpunit/includes/api/ApiResultTest.php
tests/phpunit/includes/api/ApiTestCase.php

index be1a695..966af53 100644 (file)
@@ -111,8 +111,9 @@ class ApiExpandTemplates extends ApiBase {
                                // the old way
                                ApiResult::setContentValue( $retval, 'wikitext', $wikitext );
                        } else {
+                               $p_output = $wgParser->getOutput();
                                if ( isset( $prop['categories'] ) ) {
-                                       $categories = $wgParser->getOutput()->getCategories();
+                                       $categories = $p_output->getCategories();
                                        if ( $categories ) {
                                                $categories_result = array();
                                                foreach ( $categories as $category => $sortkey ) {
@@ -126,7 +127,7 @@ class ApiExpandTemplates extends ApiBase {
                                        }
                                }
                                if ( isset( $prop['properties'] ) ) {
-                                       $properties = $wgParser->getOutput()->getProperties();
+                                       $properties = $p_output->getProperties();
                                        if ( $properties ) {
                                                ApiResult::setArrayType( $properties, 'BCkvp', 'name' );
                                                ApiResult::setIndexedTagName( $properties, 'property' );
@@ -142,6 +143,27 @@ class ApiExpandTemplates extends ApiBase {
                                if ( isset( $prop['wikitext'] ) ) {
                                        $retval['wikitext'] = $wikitext;
                                }
+                               if ( isset( $prop['modules'] ) ) {
+                                       $retval['modules'] = array_values( array_unique( $p_output->getModules() ) );
+                                       $retval['modulescripts'] = array_values( array_unique( $p_output->getModuleScripts() ) );
+                                       $retval['modulestyles'] = array_values( array_unique( $p_output->getModuleStyles() ) );
+                               }
+                               if ( isset( $prop['jsconfigvars'] ) ) {
+                                       $retval['jsconfigvars'] =
+                                               ApiResult::addMetadataToResultVars( $p_output->getJsConfigVars() );
+                               }
+                               if ( isset( $prop['encodedjsconfigvars'] ) ) {
+                                       $retval['encodedjsconfigvars'] = FormatJson::encode(
+                                               $p_output->getJsConfigVars(), false, FormatJson::ALL_OK
+                                       );
+                                       $retval[ApiResult::META_SUBELEMENTS][] = 'encodedjsconfigvars';
+                               }
+                               if ( isset( $prop['modules'] ) &&
+                                       !isset( $prop['jsconfigvars'] ) && !isset( $prop['encodedjsconfigvars'] ) ) {
+                                       $this->setWarning( "Property 'modules' was set but not 'jsconfigvars' " .
+                                               "or 'encodedjsconfigvars'. Configuration variables are necessary " .
+                                               "for proper module usage.");
+                               }
                        }
                }
                ApiResult::setSubelementsList( $retval, array( 'wikitext', 'parsetree' ) );
@@ -167,9 +189,13 @@ class ApiExpandTemplates extends ApiBase {
                                        'properties',
                                        'volatile',
                                        'ttl',
+                                       'modules',
+                                       'jsconfigvars',
+                                       'encodedjsconfigvars',
                                        'parsetree',
                                ),
                                ApiBase::PARAM_ISMULTI => true,
+                               ApiBase::PARAM_HELP_MSG_PER_VALUE => array(),
                        ),
                        'includecomments' => false,
                        'generatexml' => array(
index 36be777..1833434 100644 (file)
@@ -71,7 +71,9 @@ class ApiParse extends ApiBase {
                if ( isset( $params['section'] ) ) {
                        $this->section = $params['section'];
                        if ( !preg_match( '/^((T-)?\d+|new)$/', $this->section ) ) {
-                               $this->dieUsage( "The section parameter must be a valid section id or 'new'", "invalidsection" );
+                               $this->dieUsage(
+                                       "The section parameter must be a valid section id or 'new'", "invalidsection"
+                               );
                        }
                } else {
                        $this->section = false;
@@ -89,7 +91,10 @@ class ApiParse extends ApiBase {
 
                if ( !is_null( $oldid ) || !is_null( $pageid ) || !is_null( $page ) ) {
                        if ( $this->section === 'new' ) {
-                                       $this->dieUsage( 'section=new cannot be combined with oldid, pageid or page parameters. Please use text', 'params' );
+                                       $this->dieUsage(
+                                               'section=new cannot be combined with oldid, pageid or page parameters. ' .
+                                               'Please use text', 'params'
+                                       );
                        }
                        if ( !is_null( $oldid ) ) {
                                // Don't use the parser cache
@@ -356,7 +361,8 @@ class ApiParse extends ApiBase {
                }
 
                if ( isset( $prop['jsconfigvars'] ) ) {
-                       $result_array['jsconfigvars'] = $this->formatJsConfigVars( $p_result->getJsConfigVars() );
+                       $result_array['jsconfigvars'] =
+                               ApiResult::addMetadataToResultVars( $p_result->getJsConfigVars() );
                }
 
                if ( isset( $prop['encodedjsconfigvars'] ) ) {
@@ -366,6 +372,13 @@ class ApiParse extends ApiBase {
                        $result_array[ApiResult::META_SUBELEMENTS][] = 'encodedjsconfigvars';
                }
 
+               if ( isset( $prop['modules'] ) &&
+                       !isset( $prop['jsconfigvars'] ) && !isset( $prop['encodedjsconfigvars'] ) ) {
+                       $this->setWarning( "Property 'modules' was set but not 'jsconfigvars' " .
+                               "or 'encodedjsconfigvars'. Configuration variables are necessary " .
+                               "for proper module usage.");
+               }
+
                if ( isset( $prop['indicators'] ) ) {
                        $result_array['indicators'] = (array)$p_result->getIndicators();
                        ApiResult::setArrayType( $result_array['indicators'], 'BCkvp', 'name' );
@@ -520,12 +533,13 @@ class ApiParse extends ApiBase {
                $sectionTitle = !is_null( $params['sectiontitle'] ) ? $params['sectiontitle'] : '';
 
                if ( $this->section === 'new' && ( $sectionTitle === '' || $summary === '' ) ) {
-                       if( $sectionTitle !== '' ) {
+                       if ( $sectionTitle !== '' ) {
                                $summary = $params['sectiontitle'];
                        }
                        if ( $summary !== '' ) {
-                               $summary = wfMessage( 'newsectionsummary' )->rawParams( $wgParser->stripSectionName( $summary ) )
-                                       ->inContentLanguage()->text();
+                               $summary = wfMessage( 'newsectionsummary' )
+                                       ->rawParams( $wgParser->stripSectionName( $summary ) )
+                                               ->inContentLanguage()->text();
                        }
                }
                return Linker::formatComment( $summary, $title, $this->section === 'new' );
@@ -681,53 +695,6 @@ class ApiParse extends ApiBase {
                return $result;
        }
 
-       private function formatJsConfigVars( $vars, $forceHash = true ) {
-               // Process subarrays and determine if this is a JS [] or {}
-               $hash = $forceHash;
-               $maxKey = -1;
-               $bools = array();
-               foreach ( $vars as $k => $v ) {
-                       if ( is_array( $v ) || is_object( $v ) ) {
-                               $vars[$k] = $this->formatJsConfigVars( (array)$v, false );
-                       } elseif ( is_bool( $v ) ) {
-                               // Better here to use real bools even in BC formats
-                               $bools[] = $k;
-                       }
-                       if ( is_string( $k ) ) {
-                               $hash = true;
-                       } elseif ( $k > $maxKey ) {
-                               $maxKey = $k;
-                       }
-               }
-               if ( !$hash && $maxKey !== count( $vars ) - 1 ) {
-                       $hash = true;
-               }
-
-               // Get the list of keys we actually care about. Unfortunately, we can't support
-               // certain keys that conflict with ApiResult metadata.
-               $keys = array_diff( array_keys( $vars ), array(
-                       ApiResult::META_TYPE, ApiResult::META_PRESERVE_KEYS, ApiResult::META_KVP_KEY_NAME,
-                       ApiResult::META_INDEXED_TAG_NAME, ApiResult::META_BC_BOOLS
-               ) );
-
-               // Set metadata appropriately
-               if ( $hash ) {
-                       return array(
-                               ApiResult::META_TYPE => 'kvp',
-                               ApiResult::META_KVP_KEY_NAME => 'key',
-                               ApiResult::META_PRESERVE_KEYS => $keys,
-                               ApiResult::META_BC_BOOLS => $bools,
-                               ApiResult::META_INDEXED_TAG_NAME => 'var',
-                       ) + $vars;
-               } else {
-                       return array(
-                               ApiResult::META_TYPE => 'array',
-                               ApiResult::META_BC_BOOLS => $bools,
-                               ApiResult::META_INDEXED_TAG_NAME => 'value',
-                       ) + $vars;
-               }
-       }
-
        private function setIndexedTagNames( &$array, $mapping ) {
                foreach ( $mapping as $key => $name ) {
                        if ( isset( $array[$key] ) ) {
index 7c573a8..f0c7430 100644 (file)
@@ -302,10 +302,14 @@ class ApiResult implements ApiSerializable {
                                $arr[$name] += $value;
                        } else {
                                $keys = join( ', ', array_keys( $conflicts ) );
-                               throw new RuntimeException( "Conflicting keys ($keys) when attempting to merge element $name" );
+                               throw new RuntimeException(
+                                       "Conflicting keys ($keys) when attempting to merge element $name"
+                               );
                        }
                } else {
-                       throw new RuntimeException( "Attempting to add element $name=$value, existing value is {$arr[$name]}" );
+                       throw new RuntimeException(
+                               "Attempting to add element $name=$value, existing value is {$arr[$name]}"
+                       );
                }
        }
 
@@ -703,7 +707,9 @@ class ApiResult implements ApiSerializable {
         * @param string $kvpKeyName See ApiResult::META_KVP_KEY_NAME
         */
        public static function setArrayType( array &$arr, $type, $kvpKeyName = null ) {
-               if ( !in_array( $type, array( 'default', 'array', 'assoc', 'kvp', 'BCarray', 'BCassoc', 'BCkvp' ), true ) ) {
+               if ( !in_array( $type, array(
+                               'default', 'array', 'assoc', 'kvp', 'BCarray', 'BCassoc', 'BCkvp'
+                               ), true ) ) {
                        throw new InvalidArgumentException( 'Bad type' );
                }
                $arr[self::META_TYPE] = $type;
@@ -1035,7 +1041,8 @@ class ApiResult implements ApiSerializable {
        /**
         * Get the 'real' size of a result item. This means the strlen() of the item,
         * or the sum of the strlen()s of the elements if the item is an array.
-        * @note Once the deprecated public self::size is removed, we can rename this back to a less awkward name.
+        * @note Once the deprecated public self::size is removed, we can rename
+        *       this back to a less awkward name.
         * @param mixed $value
         * @return int
         */
@@ -1096,6 +1103,61 @@ class ApiResult implements ApiSerializable {
                return $ret;
        }
 
+       /**
+        * Add the correct metadata to an array of vars we want to export through
+        * the API.
+        *
+        * @param array $vars
+        * @param boolean $forceHash
+        * @return array
+        */
+       public static function addMetadataToResultVars( $vars, $forceHash = true ) {
+               // Process subarrays and determine if this is a JS [] or {}
+               $hash = $forceHash;
+               $maxKey = -1;
+               $bools = array();
+               foreach ( $vars as $k => $v ) {
+                       if ( is_array( $v ) || is_object( $v ) ) {
+                               $vars[$k] = ApiResult::addMetadataToResultVars( (array)$v, is_object( $v ) );
+                       } elseif ( is_bool( $v ) ) {
+                               // Better here to use real bools even in BC formats
+                               $bools[] = $k;
+                       }
+                       if ( is_string( $k ) ) {
+                               $hash = true;
+                       } elseif ( $k > $maxKey ) {
+                               $maxKey = $k;
+                       }
+               }
+               if ( !$hash && $maxKey !== count( $vars ) - 1 ) {
+                       $hash = true;
+               }
+
+               // Set metadata appropriately
+               if ( $hash ) {
+                       // Get the list of keys we actually care about. Unfortunately, we can't support
+                       // certain keys that conflict with ApiResult metadata.
+                       $keys = array_diff( array_keys( $vars ), array(
+                               ApiResult::META_TYPE, ApiResult::META_PRESERVE_KEYS, ApiResult::META_KVP_KEY_NAME,
+                               ApiResult::META_INDEXED_TAG_NAME, ApiResult::META_BC_BOOLS
+                       ) );
+
+                       return array(
+                               ApiResult::META_TYPE => 'kvp',
+                               ApiResult::META_KVP_KEY_NAME => 'key',
+                               ApiResult::META_PRESERVE_KEYS => $keys,
+                               ApiResult::META_BC_BOOLS => $bools,
+                               ApiResult::META_INDEXED_TAG_NAME => 'var',
+                       ) + $vars;
+               } else {
+                       return array(
+                               ApiResult::META_TYPE => 'array',
+                               ApiResult::META_BC_BOOLS => $bools,
+                               ApiResult::META_INDEXED_TAG_NAME => 'value',
+                       ) + $vars;
+               }
+       }
+
        /**@}*/
 
        /************************************************************************//**
index f3faf48..2a2e855 100644 (file)
        "apihelp-expandtemplates-param-title": "Title of page.",
        "apihelp-expandtemplates-param-text": "Wikitext to convert.",
        "apihelp-expandtemplates-param-revid": "Revision ID, for <nowiki>{{REVISIONID}}</nowiki> and similar variables.",
-       "apihelp-expandtemplates-param-prop": "Which pieces of information to get:\n;wikitext:The expanded wikitext.\n;categories:Any categories present in the input that are not represented in the wikitext output.\n;properties:Page properties defined by expanded magic words in the wikitext.\n;volatile:Whether the output is volatile and should not be reused elsewhere within the page.\n;ttl:The maximum time after which caches of the result should be invalidated.\n;parsetree:The XML parse tree of the input.\nNote that if no values are selected, the result will contain the wikitext, but the output will be in a deprecated format.",
+       "apihelp-expandtemplates-param-prop": "Which pieces of information to get.\n\nNote that if no values are selected, the result will contain the wikitext, but the output will be in a deprecated format.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "The expanded wikitext.",
+       "apihelp-expandtemplates-paramvalue-prop-categories": "Any categories present in the input that are not represented in the wikitext output.",
+       "apihelp-expandtemplates-paramvalue-prop-properties": "Page properties defined by expanded magic words in the wikitext.",
+       "apihelp-expandtemplates-paramvalue-prop-volatile": "Whether the output is volatile and should not be reused elsewhere within the page.",
+       "apihelp-expandtemplates-paramvalue-prop-ttl": "The maximum time after which caches of the result should be invalidated.",
+       "apihelp-expandtemplates-paramvalue-prop-modules": "Any ResourceLoader modules that parser functions have requested be added to the output. Either <kbd>jsconfigvars</kbd> or <kbd>encodedjsconfigvars</kbd> must be requested jointly with <kbd>modules</kbd>.",
+       "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "Gives the JavaScript configuration variables specific to the page.",
+       "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "Gives the JavaScript configuration variables specific to the page as a JSON string.",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "The XML parse tree of the input.",
        "apihelp-expandtemplates-param-includecomments": "Whether to include HTML comments in the output.",
        "apihelp-expandtemplates-param-generatexml": "Generate XML parse tree (replaced by $1prop=parsetree).",
        "apihelp-expandtemplates-example-simple": "Expand the wikitext <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
        "apihelp-parse-paramvalue-prop-displaytitle": "Adds the title of the parsed wikitext.",
        "apihelp-parse-paramvalue-prop-headitems": "Gives items to put in the <code>&lt;head&gt;</code> of the page.",
        "apihelp-parse-paramvalue-prop-headhtml": "Gives parsed <code>&lt;head&gt;</code> of the page.",
-       "apihelp-parse-paramvalue-prop-modules": "Gives the ResourceLoader modules used on the page.",
+       "apihelp-parse-paramvalue-prop-modules": "Gives the ResourceLoader modules used on the page. Either <kbd>jsconfigvars</kbd> or <kbd>encodedjsconfigvars</kbd> must be requested jointly with <kbd>modules</kbd>.",
        "apihelp-parse-paramvalue-prop-jsconfigvars": "Gives the JavaScript configuration variables specific to the page.",
        "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Gives the JavaScript configuration variables specific to the page as a JSON string.",
        "apihelp-parse-paramvalue-prop-indicators": "Gives the HTML of page status indicators used on the page.",
index fef1906..fb494fb 100644 (file)
        "apihelp-paraminfo-param-formatmodules": "Leß met de Nahme vun de Moduhle zom Fommatehre (Wäät vum „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">format</var>“-Parramehter). Nemm schtatt dämm „<varlang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1modules</var>“.",
        "apihelp-paraminfo-example-1": "Zisch Aanjahbe övver <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd>, un <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>.",
        "apihelp-parse-param-summary": "De Zersammefaßong för ze pahse.",
-       "apihelp-parse-param-prop": "Wat för en Schtöcker aan Ennfommazjuhne holle:",
+       "apihelp-parse-param-prop": "Wat för en Schtöker aan Ennfommazjuhne holle:",
        "apihelp-parse-paramvalue-prop-text": "Jitt dä jepahßde Täx vum Wikkitäx uß.",
        "apihelp-parse-paramvalue-prop-langlinks": "Jitt de Schprohche-Lengks em jepahßde Wikkitäx uß.",
        "apihelp-parse-paramvalue-prop-categories": "Jitt de Saachjroppe em jepahßde Wikkitäx uß.",
        "apihelp-query+fileusage-example-simple": "Holl Aanjahbe övver Sigge, di de Dattei „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[:File:Example.jpg]].</code>“ bruche.",
        "apihelp-query+fileusage-example-generator": "Holl Aanjahbe övver Sigge, di de Dattei „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[:File:Example.jpg]].</code>“ bruche",
        "apihelp-query+imageinfo-description": "Jidd Enfommazjuhne övver Datteije un de Verjangeheid vum Huhlahde aan.",
-       "apihelp-query+imageinfo-param-prop": "Wat för en Schtöcker aan Ennfommazjuhne holle:",
+       "apihelp-query+imageinfo-param-prop": "Wat för en Schtöker aan Ennfommazjuhne holle:",
        "apihelp-query+imageinfo-paramvalue-prop-timestamp": "Deihd en dattom un en Zigg aan de huhjelahde Väsjohn.",
        "apihelp-query+imageinfo-paramvalue-prop-user": "Deiht dä Metmaacher derbei, dä jehde Väsjohn vun dä Dattei huhjelahde hät.",
        "apihelp-query+imageinfo-paramvalue-prop-userid": "Deiht de Kännong vun däm Metmaacher derbei, dä jehde Väsohn vun dä Dattei.",
index c6ac8fd..2cf7aa6 100644 (file)
        "apihelp-expandtemplates-param-title": "{{doc-apihelp-param|expandtemplates|title}}",
        "apihelp-expandtemplates-param-text": "{{doc-apihelp-param|expandtemplates|text}}",
        "apihelp-expandtemplates-param-revid": "{{doc-apihelp-param|expandtemplates|revid}}\n{{doc-important|Do not translate <code><<nowiki />nowiki>{{<nowiki />REVISIONID}}<<nowiki />/nowiki></code>}}",
-       "apihelp-expandtemplates-param-prop": "{{doc-apihelp-param|expandtemplates|prop}}",
+       "apihelp-expandtemplates-param-prop": "{{doc-apihelp-param|expandtemplates|prop|paramvalues=1}}",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "{{doc-apihelp-paramvalue|expandtemplates|prop|wikitext}}",
+       "apihelp-expandtemplates-paramvalue-prop-categories": "{{doc-apihelp-paramvalue|expandtemplates|prop|categories}}",
+       "apihelp-expandtemplates-paramvalue-prop-properties": "{{doc-apihelp-paramvalue|expandtemplates|prop|properties}}",
+       "apihelp-expandtemplates-paramvalue-prop-volatile": "{{doc-apihelp-paramvalue|expandtemplates|prop|volatile}}",
+       "apihelp-expandtemplates-paramvalue-prop-ttl": "{{doc-apihelp-paramvalue|expandtemplates|prop|ttl}}",
+       "apihelp-expandtemplates-paramvalue-prop-modules": "{{doc-apihelp-paramvalue|expandtemplates|prop|modules}}",
+       "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "{{doc-apihelp-paramvalue|expandtemplates|prop|jsconfigvars}}",
+       "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "{{doc-apihelp-paramvalue|expandtemplates|prop|encodedjsconfigvars}}",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "{{doc-apihelp-paramvalue|expandtemplates|prop|parsetree}}",
        "apihelp-expandtemplates-param-includecomments": "{{doc-apihelp-param|expandtemplates|includecomments}}",
        "apihelp-expandtemplates-param-generatexml": "{{doc-apihelp-param|expandtemplates|generatexml}}",
        "apihelp-expandtemplates-example-simple": "{{doc-apihelp-example|expandtemplates}}",
index 3db32ba..80a49b4 100644 (file)
@@ -86,6 +86,8 @@
        "apihelp-expandtemplates-description": "展開所有於 wikitext 中模板。",
        "apihelp-expandtemplates-param-title": "頁面標題。",
        "apihelp-expandtemplates-param-text": "要轉換的 Wikitext。",
+       "apihelp-feedcontributions-description": "回傳使用者貢獻 Feed。",
+       "apihelp-feedcontributions-param-feedformat": "Feed 的格式。",
        "apihelp-feedcontributions-param-showsizediff": "顯示修訂版本之間的差異大小。",
        "apihelp-feedcontributions-example-simple": "返回使用者<kbd>Example</kbd>的貢獻。",
        "apihelp-feedrecentchanges-description": "返回近期邊更摘要。",
        "apihelp-query+allredirects-param-limit": "要回傳的項目總數。",
        "apihelp-query+alltransclusions-param-limit": "要回傳的項目總數。",
        "apihelp-query+categories-param-limit": "要回傳的分類數量。",
+       "apihelp-query+categoryinfo-description": "回傳有關指定分類的資訊。",
        "apihelp-query+categorymembers-param-limit": "回傳的頁面數量上限。",
        "apihelp-query+contributors-param-limit": "要回傳的貢獻人員數量。",
        "apihelp-query+duplicatefiles-param-limit": "要回傳的重複檔案數量。",
        "apihelp-query+embeddedin-param-limit": "要回傳的頁面總數。",
+       "apihelp-query+extlinks-description": "回傳所有指定頁面的外部 URL (非 interwiki)。",
        "apihelp-query+extlinks-param-limit": "要回傳的連結數量。",
        "apihelp-query+exturlusage-param-limit": "要回傳的頁面數量。",
        "apihelp-query+filearchive-param-limit": "要回傳的圖片總數。",
        "apihelp-query+fileusage-param-limit": "要回傳的數量。",
+       "apihelp-query+imageinfo-description": "回傳檔案資訊與上傳日誌。",
        "apihelp-query+imageinfo-param-limit": "每個檔案要回傳的檔案修訂數量。",
+       "apihelp-query+images-description": "回傳指定頁面中包含的所有檔案。",
        "apihelp-query+images-param-limit": "要回傳的檔案數量。",
+       "apihelp-query+iwlinks-description": "回傳指定頁面的所有 interwiki 連結。",
        "apihelp-query+iwlinks-param-limit": "要回傳的跨 Wiki 連結數量。",
        "apihelp-query+langbacklinks-param-limit": "要回傳的頁面總數。",
+       "apihelp-query+langlinks-description": "回傳指定頁面的所有跨語言連結。",
        "apihelp-query+langlinks-param-limit": "要回傳的 langlinks 數量。",
+       "apihelp-query+links-description": "回傳指定頁面的所有連結。",
        "apihelp-query+links-param-limit": "要回傳的連結數量。",
        "apihelp-query+linkshere-param-limit": "要回傳的數量。",
        "apihelp-query+logevents-param-limit": "要回傳的事件項目總數。",
        "apihelp-query+recentchanges-description": "列舉出近期變動。",
        "apihelp-query+recentchanges-param-limit": "要回傳變更總數。",
        "apihelp-query+recentchanges-example-simple": "近期變動清單",
+       "apihelp-query+redirects-description": "回傳連結至指定頁面的所有重新導向。",
        "apihelp-query+redirects-param-limit": "要回傳的重新導向數量。",
        "apihelp-query+search-param-limit": "要回傳的頁面總數。",
+       "apihelp-query+stashimageinfo-description": "回傳多筆儲藏檔案的檔案資訊。",
+       "apihelp-query+stashimageinfo-example-simple": "回傳儲藏檔案的檔案資訊。",
+       "apihelp-query+templates-description": "回傳指定頁面中所有引用的頁面。",
        "apihelp-query+templates-param-limit": "要回傳的樣板數量。",
        "apihelp-query+tokens-param-type": "要請求的密鑰類型。",
        "apihelp-query+tokens-example-simple": "接收 csrf 密鑰 (預設)。",
index 20e4a4c..a480aec 100644 (file)
@@ -56,7 +56,6 @@ class HTMLCacheUpdate implements DeferrableUpdate {
                $count = $this->mTitle->getBacklinkCache()->getNumLinks( $this->mTable, 100 );
                if ( $count >= 100 ) { // many backlinks
                        JobQueueGroup::singleton()->lazyPush( $job );
-                       JobQueueGroup::singleton()->deduplicateRootJob( $job );
                } else { // few backlinks ($count might be off even if 0)
                        $dbw = wfGetDB( DB_MASTER );
                        $dbw->onTransactionIdle( function () use ( $job ) {
index e4f00e7..eeadd16 100644 (file)
@@ -267,7 +267,6 @@ class LinksUpdate extends SqlDataUpdate {
                        );
 
                        JobQueueGroup::singleton()->push( $job );
-                       JobQueueGroup::singleton()->deduplicateRootJob( $job );
                }
        }
 
index b971bd5..f7ef8a9 100644 (file)
@@ -206,15 +206,27 @@ abstract class Job implements IJobSpecification {
        }
 
        /**
+        * Get "root job" parameters for a task
+        *
+        * This is used to no-op redundant jobs, including child jobs of jobs,
+        * as long as the children inherit the root job parameters. When a job
+        * with root job parameters and "rootJobIsSelf" set is pushed, the
+        * deduplicateRootJob() method is automatically called on it. If the
+        * root job is only virtual and not actually pushed (e.g. the sub-jobs
+        * are inserted directly), then call deduplicateRootJob() directly.
+        *
         * @see JobQueue::deduplicateRootJob()
+        *
         * @param string $key A key that identifies the task
         * @return array Map of:
+        *   - rootJobIsSelf    : true
         *   - rootJobSignature : hash (e.g. SHA1) that identifies the task
         *   - rootJobTimestamp : TS_MW timestamp of this instance of the task
         * @since 1.21
         */
        public static function newRootJobParams( $key ) {
                return array(
+                       'rootJobIsSelf'    => true,
                        'rootJobSignature' => sha1( $key ),
                        'rootJobTimestamp' => wfTimestampNow()
                );
@@ -246,6 +258,14 @@ abstract class Job implements IJobSpecification {
                        && isset( $this->params['rootJobTimestamp'] );
        }
 
+       /**
+        * @see JobQueue::deduplicateRootJob()
+        * @return bool Whether this is job is a root job
+        */
+       public function isRootJob() {
+               return $this->hasRootJobParams() && !empty( $this->params['rootJobIsSelf'] );
+       }
+
        /**
         * Insert a single job into the queue.
         * @return bool True on success
index 1a68489..013cc61 100644 (file)
@@ -323,6 +323,12 @@ abstract class JobQueue {
 
                $this->doBatchPush( $jobs, $flags );
                $this->aggr->notifyQueueNonEmpty( $this->wiki, $this->type );
+
+               foreach ( $jobs as $job ) {
+                       if ( $job->isRootJob() ) {
+                               $this->deduplicateRootJob( $job );
+                       }
+               }
        }
 
        /**
index ecbb031..109ca01 100644 (file)
@@ -93,6 +93,8 @@ class JobQueueFederated extends JobQueue {
                ) {
                        unset( $baseConfig[$o] ); // partition queue doesn't care about this
                }
+               // The class handles all aggregator calls already
+               unset( $baseConfig['aggregator'] );
                // Get the partition queue objects
                foreach ( $partitionMap as $partition => $w ) {
                        if ( !isset( $params['configByPartition'][$partition] ) ) {
index f4cff3c..efc36cc 100644 (file)
@@ -136,7 +136,7 @@ class JobRunner implements LoggerAwareInterface {
                $wait = 'wait'; // block to read backoffs the first time
 
                $stats = RequestContext::getMain()->getStats();
-               $jobsRun = 0;
+               $jobsPopped = 0;
                $timeMsTotal = 0;
                $flags = JobQueueGroup::USE_CACHE;
                $startTime = microtime( true ); // time since jobs started running
@@ -157,6 +157,7 @@ class JobRunner implements LoggerAwareInterface {
                        }
 
                        if ( $job ) { // found a job
+                               $popTime = time();
                                $jType = $job->getType();
 
                                // Back off of certain jobs for a while (for throttling and for errors)
@@ -173,17 +174,12 @@ class JobRunner implements LoggerAwareInterface {
                                $msg = $job->toString() . " STARTING";
                                $this->logger->debug( $msg );
                                $this->debugCallback( $msg );
-                               $timeToRun = false;
 
                                // Run the job...
                                $psection = $profiler->scopedProfileIn( __METHOD__ . '-' . $jType );
                                $jobStartTime = microtime( true );
                                try {
-                                       ++$jobsRun;
-                                       $queuedTime = $job->getQueuedTimestamp();
-                                       if ( $queuedTime !== null ) {
-                                               $timeToRun = time() - $queuedTime;
-                                       }
+                                       ++$jobsPopped;
                                        $status = $job->run();
                                        $error = $job->getLastError();
                                        $this->commitMasterChanges( $job );
@@ -198,18 +194,15 @@ class JobRunner implements LoggerAwareInterface {
                                }
                                // Commit all outstanding connections that are in a transaction
                                // to get a fresh repeatable read snapshot on every connection.
-                               // This is important because if you have an old snapshot on the
-                               // database you could run the job incorrectly. Its possible, for
-                               // example, to pick up a RefreshLinksJob for a new page that isn't
-                               // even visible to the snapshot. The snapshot could have been
-                               // created before the page. Fresh snapshots will see the page.
                                wfGetLBFactory()->commitAll();
                                $timeMs = intval( ( microtime( true ) - $jobStartTime ) * 1000 );
                                $timeMsTotal += $timeMs;
                                $profiler->scopedProfileOut( $psection );
-                               if ( $timeToRun !== false ) {
+
+                               if ( $job->getQueuedTimestamp() ) {
                                        // Record time to run for the job type
-                                       $stats->timing( "jobqueue.pickup_time.$jType", $timeToRun );
+                                       $stats->timing( "job-pickuptime-$jType",
+                                               $popTime - $job->getQueuedTimestamp() );
                                }
 
                                // Mark the job as done on success or when the job cannot be retried
@@ -243,7 +236,7 @@ class JobRunner implements LoggerAwareInterface {
                                );
 
                                // Break out if we hit the job count or wall time limits...
-                               if ( $maxJobs && $jobsRun >= $maxJobs ) {
+                               if ( $maxJobs && $jobsPopped >= $maxJobs ) {
                                        $response['reached'] = 'job-limit';
                                        break;
                                } elseif ( $maxTime && ( microtime( true ) - $startTime ) > $maxTime ) {
@@ -263,7 +256,7 @@ class JobRunner implements LoggerAwareInterface {
                                        $lastCheckTime = microtime( true );
                                }
                                // Don't let any queue slaves/backups fall behind
-                               if ( $jobsRun > 0 && ( $jobsRun % 100 ) == 0 ) {
+                               if ( $jobsPopped > 0 && ( $jobsPopped % 100 ) == 0 ) {
                                        $group->waitForBackups();
                                }
 
index ecace3a..d59c09b 100644 (file)
@@ -72,6 +72,12 @@ interface IJobSpecification {
         */
        public function hasRootJobParams();
 
+       /**
+        * @see JobQueue::deduplicateRootJob()
+        * @return bool Whether this is job is a root job
+        */
+       public function isRootJob();
+
        /**
         * @return Title Descriptive title (this can simply be informative)
         */
@@ -195,6 +201,10 @@ class JobSpecification implements IJobSpecification {
                        && isset( $this->params['rootJobTimestamp'] );
        }
 
+       public function isRootJob() {
+               return $this->hasRootJobParams() && !empty( $this->params['rootJobIsSelf'] );
+       }
+
        /**
         * @return array Field/value map that can immediately be serialized
         * @since 1.25
index cbc78fb..f11d703 100644 (file)
        "preview": "Voorskou",
        "showpreview": "Wys voorskou",
        "showdiff": "Wys veranderings",
-       "anoneditwarning": "'''Waarskuwing:''' u is nie aangemeld nie. U IP-adres sal in die bladsy se wysigingsgeskiedenis gestoor word. As u <strong>[$1 aanmeld]</strong> of <strong>[$2 'n gebruiker skep]</strong verskyn u wysigings, naas andere voordele, onder u gebruikersnaam.",
+       "anoneditwarning": "'''Waarskuwing:''' u is nie aangemeld nie. U IP-adres sal in die bladsy se wysigingsgeskiedenis gestoor word. As u <strong>[$1 aanmeld]</strong> of <strong>[$2 'n rekening skep]</strong> verskyn u wysigings onder u gebruikersnaam, naas andere voordele.",
        "anonpreviewwarning": "''U is nie aangeteken nie.''\n''As u die bladsy stoor sal u IP-adres in die bladsy se geskeidenis aangeteken word.''",
        "missingsummary": "'''Neem kennis''': Geen opsomming van die wysiging is verskaf nie. As \"Stoor\" weer gekliek word, word die wysiging sonder 'n opsomming gestoor.",
        "missingcommenttext": "Tik die opsomming onder.",
        "download": "laai af",
        "unwatchedpages": "Bladsye wat nie dopgehou word nie",
        "listredirects": "Lys aansture",
-       "listduplicatedfiles": "Lys van lrs met duplikate",
+       "listduplicatedfiles": "Lys van lêers met duplikate",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] het [[$3|{{PLURAL:$2|'n duplikaat|$2 duplikate}}]].",
        "unusedtemplates": "Ongebruikte sjablone",
        "unusedtemplatestext": "Hierdie blad lys alle bladsye in die {{ns:template}}-naamruimte wat nêrens in 'n ander blad ingesluit word nie. Onthou om ook ander skakels na die sjablone na te gaan voor verwydering.",
        "nonfile-cannot-move-to-file": "Net lêers kan na die lêernaamruimte geskuif word",
        "imagetypemismatch": "Die nuwe lêer se uitbreiding pas nie by die lêertipe nie",
        "imageinvalidfilename": "Die nuwe lêernaam is ongeldig",
-       "fix-double-redirects": "Opdateer alle aansture wat na die oorspronklike titel wys",
+       "fix-double-redirects": "Dateer alle aansture op wat na die oorspronklike titel wys",
        "move-leave-redirect": "Los 'n aanstuur agter",
        "protectedpagemovewarning": "'''Waarskuwing:''' Hierdie bladsy kan slegs deur administrateurs geskuif word. Die nuutste logboekinskrywing word hieronder ter verwysing vertoon:",
        "semiprotectedpagemovewarning": "'''Let wel:''' Hierdie bladsy kan slegs deur geregistreerde gebruikers geskuif word. Die nuutste logboekinskrywing word hieronder ter verwysing vertoon:",
        "pageinfo-header-edits": "Wysigingsgeskiedenis",
        "pageinfo-header-restrictions": "Bladsybeskerming",
        "pageinfo-header-properties": "Bladsy-eienskappe",
-       "pageinfo-display-title": "Wys titel",
+       "pageinfo-display-title": "Vertoontitel",
        "pageinfo-default-sort": "Standaard sorteerwyse",
-       "pageinfo-length": "Bldasylengte (in grepe)",
+       "pageinfo-length": "Bladsylengte (in grepe)",
        "pageinfo-article-id": "Bladsy-ID",
        "pageinfo-language": "Taal vir die bladsy",
        "pageinfo-robot-policy": "Status vir soekenjins",
        "redirect-revision": "Bladsy-weergawe",
        "redirect-file": "Lêernaam",
        "redirect-not-exists": "Waarde nie gevind nie",
-       "fileduplicatesearch": "Soek duplikaat lêers",
-       "fileduplicatesearch-summary": "Soek na duplikaat lêers volgends hul hashwaardes.",
+       "fileduplicatesearch": "Soek duplikaatlêers",
+       "fileduplicatesearch-summary": "Soek na duplikaatlêers volgens hul hutswaardes.",
        "fileduplicatesearch-legend": "Soek vir 'n duplikaat",
        "fileduplicatesearch-filename": "Lêernaam:",
        "fileduplicatesearch-submit": "Soek",
        "api-error-copyuploaddisabled": "Oplaai via URL is gedeaktiveer op hierdie bediener.",
        "api-error-duplicate": "Daar {{PLURAL:$1|is al [$2 'n lêer]|is al [$2 lêers]}} met dieselfde inhoud op die wiki.",
        "api-error-duplicate-archive": "Daar {{PLURAL:$1|was [$2 'n ander lêer]|was [$2 ander lêers]}} op hierdie webtuiste met dieselfde inhoud, maar {{PLURAL:$1|dit is|dit is}} geskrap.",
-       "api-error-duplicate-archive-popup-title": "Duplikaat {{PLURAL:$1|lêer|lêers}} wat al verwyder is.",
-       "api-error-duplicate-popup-title": "Duplikaat {{PLURAL:$1|lêer|lêers}}",
+       "api-error-duplicate-archive-popup-title": "Duplikaat{{PLURAL:$1|lêer|lêers}} wat al verwyder is.",
+       "api-error-duplicate-popup-title": "Duplikaat{{PLURAL:$1|lêer|lêers}}",
        "api-error-empty-file": "Die lêer wat u probeer oplaai is leeg.",
        "api-error-emptypage": "Die skep van leë nuwe bladsye word nie toegelaat nie.",
        "api-error-fetchfileerror": "Interne fout: Iets het verkeerd gegaan met die haal van die lêer.",
index bd969a3..19b3d19 100644 (file)
        "uploaded-event-handler-on-svg": "Усталёўваць атрыбуты апрацоўніка падзеяў <code>$1=\"$2\"</code> не дазволена для SVG-файлаў.",
        "uploaded-href-attribute-svg": "Href-атрыбуты <code>&lt;$1 $2=\"$3\"&gt;</code> зь нелякальнай мэтай (напрыклад, http://, javascript:, і г. д.) не дазволеныя ў SVG-файлах.",
        "uploaded-href-unsafe-target-svg": "У загружаным SVG-файле знойдзеная спасылка на небясьпечную мэту <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-animate-svg": "У загружаным SVG-файле знойдзены тэг «animate», які можа зьмяняць спасылку з дапамогай атрыбуту «from» <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploadscriptednamespace": "Гэты SVG-файл утрымлівае няслушную прастору назваў «$1»",
        "uploadinvalidxml": "Не атрымалася прааналізаваць XML у загружаным файле.",
        "uploadvirus": "Файл утрымлівае вірус! Падрабязнасьці: $1",
index c6b998a..c091232 100644 (file)
        "feedback-bugornote": "Se está listo para describir un problema técnico en detalle, [$1 informe do erro].\nEn caso contrario, pode empregar o formulario sinxelo inferior. O seu comentario aparecerá na páxina \"[$3 $2]\" xunto ao seu nome de usuario e o navegador que está usando.",
        "feedback-cancel": "Cancelar",
        "feedback-close": "Feito",
-       "feedback-external-bug-report-button": "Gardar unha tarefa técnica",
+       "feedback-external-bug-report-button": "Enviar unha tarefa técnica",
        "feedback-dialog-title": "Enviar comentarios",
        "feedback-dialog-intro": "Pode usar o formulario simple de abaixo para enviar os seus comentarios sobre o editor visual. O seu comentario será engadido á páxina \"$1\", xunto co seu nome de usuario.",
        "feedback-error-title": "Erro",
index 53cfd8e..38c83e2 100644 (file)
        "permissionserrorstext": "Do häs nit dat Rääch, dat ze maache, {{PLURAL:$1|dä Jrund es:|de Jründe sin:|oohne Jrund.}}",
        "permissionserrorstext-withaction": "Do häs nit dat Rääch $2, {{PLURAL:$1|dä Jrond es:|de Jrönde sin:|ävver ohne aanjävbahre Jrond.}}",
        "recreate-moveddeleted-warn": "'''Opjepaß:''' Do bes om bäste Wääsch, en Sigg neu aanzelähje, di doför ald ens fottjeschmeße woode wohr.\n\nBes förseschtesch un övverlääsch Der, of dat en johde Ideh es, di Sigg widder opzemaache. Domet De Bescheid weiß, heh de Endrääsh em Logbohch vum Sigge-Ömnänne, un em Logbohch vum Sigge-Fottschmieße mem Jrond, woröm di Sigg dohmohls fottjeschmesse woode es:",
-       "moveddeleted-notice": "Heh di Sigg es fottjeschmeße. E Shtöck uß dä Logböösher fum Sigge-Fottschmieße un fum Sigge-Ömnänne för di Sigg kütt jetz, en dä Hoffnung, dat dat Der hellef.",
+       "moveddeleted-notice": "Heh di Sigg es fottjeschmeße.\nE Schtök uß dä Logböhscher fum Sigge_Fottschmihße un fum Sigge-Ömnänne för di Sigg kütt jäz, en dä Hoffnung, dat dat hellef.",
        "log-fulllog": "Donn dat janze Logbohch aanlohre",
        "edit-hook-aborted": "Et Ändere wood affjebroche övver ene sujenannte „Hoke“ en de ẞoffwäer.\nEne Jrond weße mer nit.",
        "edit-gone-missing": "Kunnt di Sigg nit änndere. Se schingk verschwunde un weed fottjeschemeße woode sin.",
        "prefs-help-email-others": "Do kannß och zohlohße, dat mer Der domet övver Ding Metmaacherklaafsigg en <i lang=\"en\">e-mail</i> schecke kann. Esu künne ander Metmaacher met Der en Kontak kumme, ohne dat se Dinge Name oder Ding <i lang=\"en\">e-Mail</i> Adress kenne mööte.",
        "prefs-help-email-required": "Do moß en <i lang=\"en>e-mail</i>-Addräß aanjevve.",
        "prefs-info": "Jrundlare",
-       "prefs-i18n": "Shprooche-Enshtellunge",
+       "prefs-i18n": "Schprohche-Enschtällonge",
        "prefs-signature": "Ongerschreff",
        "prefs-dateformat": "Dem Dattum sing Fommaat",
        "prefs-timeoffset": "Enshtellunge för de Uhrzigge",
        "filehist-help": "Di domohlije Version kriß De jezeich övver dä Link op em Dattum.",
        "filehist-deleteall": "All Versione fottschmieße",
        "filehist-deleteone": "Schmieß die Version fott",
-       "filehist-revert": "Zeröck nemme",
+       "filehist-revert": "Zeröck nämme",
        "filehist-current": "Von jetz",
        "filehist-datetime": "Väsjohn vom",
        "filehist-thumb": "Minni-Belldsche",
        "brokenredirects-edit": "ändere",
        "brokenredirects-delete": "fottschmieße",
        "withoutinterwiki": "Sigge der ohne Lengks op annder Schprohche",
-       "withoutinterwiki-summary": "He sin Sigge jeliß, di nit op annder Shprooche jelingk sin.",
+       "withoutinterwiki-summary": "He sin Sigge jeleß, di nit op annder Schprohche jelengk sin.",
        "withoutinterwiki-legend": "Aanfang fum Sigge-Tittel",
        "withoutinterwiki-submit": "Zeije",
        "fewestrevisions": "Atikele met de winnischste Versione",
index a9a8d82..e5c0665 100644 (file)
        "jumpto": "Pārlēkt uz:",
        "jumptonavigation": "navigācija",
        "jumptosearch": "meklēt",
-       "view-pool-error": "Atvainojiet, šobrīd serveri ir pārslogoti.\nPārāk daudz lietotāju mēģina apskatīt šo lapu.\nLūdzu, brīdi uzgaidiet un mēģiniet šo lapu apskatīties vēlreiz.\n\n$1",
+       "view-pool-error": "Atvainojiet, šobrīd serveri ir pārslogoti.\nPārāk daudz lietotāju mēģina apskatīt šo lapu.\nLūdzu, brīdi uzgaidiet un mēģiniet šo lapu apskatīt vēlreiz.\n\n$1",
        "pool-errorunknown": "Nezināma kļūda",
        "poolcounter-usage-error": "Izmantošanas kļūda: $1",
        "aboutsite": "Par {{grammar:akuzatīvs|{{SITENAME}}}}",
        "viewsource-title": "Apskatīt $1 izejas kodu",
        "actionthrottled": "Darbība netika atļauta",
        "protectedpagetext": "Šī lapa ir aizsargāta, lai novērstu tās izmainīšanu vai citas darbības.",
-       "viewsourcetext": "Tu vari apskatīties un nokopēt šīs lapas vikitekstu:",
+       "viewsourcetext": "Tu vari apskatīt un nokopēt šīs lapas vikitekstu:",
        "protectedinterface": "Šī lapa satur programmatūras interfeisā lietotu tekstu un ir bloķēta pret izmaiņām, lai pasargātu no bojājumiem.\nLai pievienotu izmaiņas tulkojumā visās ''wiki'', lūdzam izmantot ''MediaWiki'' lokalizēšanas projektu [//translatewiki.net/ translatewiki.net].",
        "editinginterface": "'''Brīdinājums:''' Tu izmaini lapu, kuras saturu izmanto wiki programmatūras lietotāja saskarnē (''interfeisā''). Šīs lapas izmaiņas ietekmēs lietotāja saskarni citiem lietotājiem. Pēc modificēšanas šīs izmaiņas būtu lietderīgi pievienot arī ''MediaWiki'' lokalizēšanas projektā [//translatewiki.net/ translatewiki.net].",
        "namespaceprotected": "Tev nav atļaujas izmainīt lapas, kas atrodas '''$1''' ''namespacē''.",
        "permissionserrors": "Atļauju kļūda",
        "permissionserrorstext": "Tev nav atļauts veikt šo darbību {{PLURAL:$1|šādu iemeslu|šāda iemesla|šādu iemeslu}} dēļ:",
        "permissionserrorstext-withaction": "Tev nav atļauts $2 {{PLURAL:$1|šādu iemeslu|šāda iemesla|šādu iemeslu}} dēļ:",
-       "recreate-moveddeleted-warn": "'''Brīdinājums: Tu atjauno lapu, kas ir tikusi izdzēsta'''\n\nTev vajadzētu pārliecināties, vai ir lietderīgi turpināt izmainīt šo lapu.\nTe var apskatīties dzēšanas un pārvietošanas reģistrus, kuros jābūt datiem par to kas, kad un kāpēc šo lapu izdzēsa.",
-       "moveddeleted-notice": "Šī lapa ir tikusi izdzēsta.\nTe var apskatīties dzēšanas un pārvietošanas reģistru fragmentus, lai noskaidrotu kurš, kāpēc un kad to izdzēsa.",
+       "recreate-moveddeleted-warn": "'''Brīdinājums: Tu atjauno lapu, kas ir tikusi izdzēsta'''\n\nTev vajadzētu pārliecināties, vai ir lietderīgi turpināt izmainīt šo lapu.\nTe var apskatīt dzēšanas un pārvietošanas reģistrus, kuros jābūt datiem par to kas, kad un kāpēc šo lapu izdzēsa.",
+       "moveddeleted-notice": "Šī lapa ir tikusi izdzēsta.\nTe var apskatīt dzēšanas un pārvietošanas reģistru fragmentus, lai noskaidrotu kurš, kāpēc un kad to izdzēsa.",
        "log-fulllog": "Paskatīties pilnu reģistru",
        "edit-hook-aborted": "Aizķere pārtrauca labojumu.\nNetika sniegts paskaidrojums.",
        "edit-gone-missing": "Nevar atjaunināt lapu.\nIzskatās, ka lapa ir dzēsta.",
        "upload_directory_missing": "Augšupielādes direktorijs ($1) ir pazudis, un to tīmekļa serveris nevar izveidot.",
        "upload_directory_read_only": "Augšupielādes direktoriju ($1) tīmekļa serveris nevar labot.",
        "uploaderror": "Augšupielādes kļūda",
-       "upload-recreate-warning": "'''Brīdinājums: Fails ar šādu nosaukumu ir dzēsts vai pārvietots.'''\n\n Dzēšanas un pārvietošanas reģistri šai lapai ir uzskaitīti šeit:",
+       "upload-recreate-warning": "<strong>Brīdinājums: Fails ar šādu nosaukumu ir dzēsts vai pārvietots.</strong>\n\nDzēšanas un pārvietošanas reģistri šai lapai ir pieejami šeit:",
        "uploadtext": "Pirms tu kaut ko augšupielādē, noteikti izlasi un ievēro [[Project:Attēlu izmantošanas noteikumi|attēlu izmantošanas noteikumus]].\n\nLai aplūkotu vai meklētu agrāk augšupielādētus attēlus,\ndodies uz [[Special:FileList|augšupielādēto attēlu sarakstu]].\nAugšupielādes un dzēšanas tiek reģistrētas [[Special:Log/upload|augšupielādes reģistrā]] un [[Special:Log/delete|dzēšanas reģistrā]].\n\nIzmanto šo veidni, lai augšupielādētu jaunus attēlu failus, ar kuriem ilustrēt tevis izmainītās lapas.\nGandrīz visos pārlūkos tev vajadzētu redzēt pogu '''\"Choose...\",''' kuru spiežot parādīsies faila atvēršanas dialogs.\nIzvēloties kādu failu, tā adrese parādīsies ailītē blakus šai pogai.\nTev ir arī jāatzīmē ailīte, kas apstiprina, ka tu nepārkāp nekādas autortiesības, augšupielādējot šo failu.\nSpied pogu '''Augšupielādēt''', lai pabeigtu augšupielādi.\nTas var ieilgt, ja tavs interneta pieslēgums ir lēns.\n\nIeteicamie formāti ir:\n* JPEG - ja tā ir fotogrāfija,\n* PNG - ja tas ir zīmējums vai kāda ikona, un\n* OGG - ja tas ir skaņas fails.\n\nLūdzu, pārliecinies, ka faila nosaukums ir pietiekami aprakstošs, lai izvairītos no neskaidrībām. Lai attēlu pēc tam ievietotu kādā lapā, izmanto šādi noformētu linkus:\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fails.jpg|paskaidrojošs teksts]]</nowiki>'''\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fails.png|paskaidrojošs teksts]]</nowiki>'''\nvai skaņām\n* '''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fails.ogg]]</nowiki>'''\n\nLūdzu, ņem vērā, ka tāpat kā citas wiki lapas arī tevis augšupielādētos failus citi var mainīt vai dzēst, ja uzskata, ka tas nāktu par labu šim projektam, kā arī atceries, ka tev var tikt liegta augšupielādes iespēja, ja tu šo sistēmu.",
        "upload-permitted": "Atļautie failu tipi: $1.",
        "upload-preferred": "Ieteicamie failu tipi: $1.",
        "confirmdeletetext": "Tu tūlīt no datubāzes dzēsīsi lapu vai attēlu, kā arī to iepriekšējās versijas. Lūdzu, apstiprini, ka tu tiešām to vēlies darīt, ka tu apzinies sekas un ka tu to dari saskaņā ar [[{{MediaWiki:Policy-url}}|vadlīnijām]].",
        "actioncomplete": "Darbība pabeigta",
        "actionfailed": "Darbība neizdevās",
-       "deletedtext": "Lapa \"$1\" ir izdzēsta.\nŠeit var apskatīties pēdējos izdzēstos: \"$2\".",
+       "deletedtext": "Lapa \"$1\" ir izdzēsta.\nŠeit var apskatīt pēdējos izdzēstos: \"$2\".",
        "dellogpage": "Dzēšanas reģistrs",
        "dellogpagetext": "Šajā lapā ir pēdējo dzēsto lapu saraksts.",
        "deletionlog": "dzēšanas reģistrs",
        "protectexpiry": "Beidzas:",
        "protect_expiry_invalid": "Beigu termiņš ir nederīgs.",
        "protect_expiry_old": "Beigu termiņs ir pagātnē.",
-       "protect-text": "Šeit var apskatīties un izmainīt lapas '''$1''' aizsardzības līmeni.",
+       "protect-text": "Šeit var apskatīt un izmainīt lapas <strong>$1</strong> aizsardzības līmeni.",
        "protect-locked-access": "Jūsu kontam nav atļaujas mainīt lapas aizsardzības pakāpi.\nPašreizējie lapas '''$1''' iestatījumi ir:",
        "protect-cascadeon": "Šī lapa pašlaik ir aizsargāta, jo tā ir iekļauta {{PLURAL:$1|šajās lapās|šajā lapā|šajās lapās}} (mainot šīs lapas aizsardzības līmeni aizsardzība netiks noņemta):",
        "protect-default": "Atļaut visiem lietotājiem",
        "ipb-edit-dropdown": "Izmainīt bloķēšanas iemeslus",
        "ipb-unblock-addr": "Atbloķēt $1",
        "ipb-unblock": "Atbloķēt lietotāju vai IP adresi",
-       "ipb-blocklist": "Apskatīties esošos blokus",
+       "ipb-blocklist": "Apskatīt esošos blokus",
        "ipb-blocklist-contribs": "$1 devums",
        "unblockip": "Atbloķēt lietotāju",
        "unblockiptext": "Šeit var atbloķēt iepriekš nobloķētu IP adresi vai lietotāja vārdu (atjaunot viņiem rakstīšanas piekļuvi).",
        "emaillink": "nosūtīt e-pastu",
        "autoblocker": "Tava IP ir nobloķēta automātiski, tāpēc, ka to nesen lietojis \"[[User:$1|$1]]\".\nViņa bloķēšanas iemesls bija: \"$2\"",
        "blocklogpage": "Bloķēšanas reģistrs",
-       "blocklog-showlog": "Šis lietotājs ir bijis bloķēts jau agrāk.\nTe apakšā var apskatīties bloķēšanas reģistru:",
+       "blocklog-showlog": "Šis lietotājs ir bijis bloķēts jau agrāk.\nTe apakšā var apskatīt bloķēšanas reģistru:",
        "blocklogentry": "nobloķēja [[$1]] uz $2 $3",
        "reblock-logentry": "izmainīja bloķēšanas iestatījumus [[$1]] ar beigu termiņu $2 $3",
        "blocklogtext": "Šajā lapā ir pēdējo nobloķēto un atbloķēto lietotāju saraksts.\nTe neparādās automātiski nobloķētās IP adreses.\nŠobrīd aktīvos blokus var apskatīties bloķēto lietotāju [[Special:BlockList|IP adrešu sarakstā]].",
        "tooltip-ca-talk": "Diskusija par šī raksta lapu",
        "tooltip-ca-edit": "Labot šo lapu. Lūdzam izmantot pirmskatu pirms lapas saglabāšanas.",
        "tooltip-ca-addsection": "Sākt jaunu sadaļu",
-       "tooltip-ca-viewsource": "Šī lapa ir aizsargāta. Tu vari apskatīties tās izejas kodu.",
+       "tooltip-ca-viewsource": "Šī lapa ir aizsargāta. Tu vari apskatīt tās izejas kodu.",
        "tooltip-ca-history": "Šīs lapas iepriekšējās versijas.",
        "tooltip-ca-protect": "Aizsargāt šo lapu",
        "tooltip-ca-unprotect": "Mainīt šīs lapas aizsardzību",
        "file-info-png-frames": "$1 {{PLURAL:$1|kadri|kadrs|kadri}}",
        "newimages": "Jauno attēlu galerija",
        "imagelisttext": "Šobrīd redzams $1 {{PLURAL:$1|attēlu|attēla|attēlu}} uzskaitījums, kas sakārtots $2.",
-       "newimages-summary": "Šeit var apskatīties pēdējos augšuplādētos failus šajā Vikipēdijā",
+       "newimages-summary": "Šeit var apskatīt pēdējos augšupielādētos failus.",
        "newimages-legend": "Filtrs",
        "newimages-label": "Faila nosaukums (vai tā daļa):",
        "newimages-showbots": "Parādīt botu augšupielādētos failus",
index a6fb249..0f1e796 100644 (file)
        "uploaded-hostile-svg": "Truvato nu CSS insecuro int'a l'elemente 'e stile d' 'o file SVG carrecate.",
        "uploaded-event-handler-on-svg": "Mpustà 'e parametre 'e gistore-evente <code>$1=\"$2\"</code> nun è premmesso dint' 'e file SVG.",
        "uploaded-href-attribute-svg": "Ll'attribbute Href <code>&lt;$1 $2=\"$3\"&gt;</code> cu target non-local (e.g. http://, javascript:, ecc) nun so' premmesse int' 'e file SVG.",
+       "uploaded-href-unsafe-target-svg": "S'è truvato nu href a nu target ca nun era sicuro <code>&lt;$1 $2=\"$3\"&gt;</code> dint' 'o file SVG carrecato.",
        "uploaded-animate-svg": "Truvato 'o tag \"animate\" ca putesse stà a cagnà href, ausanno l'attribbuto \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code> int' 'o file carrecato SVG.",
        "uploaded-setting-event-handler-svg": "Mpustà n'attributo event-handler è bluccato, truvato <code>&lt;$1 $2=\"$3\"&gt;</code> int' 'o fie carrecato SVG.",
        "uploaded-setting-href-svg": "Ausà 'o tag \"set\" pe' putè azzeccà attribbute \"href\" a l'elemento parente è bluccato.",
+       "uploaded-wrong-setting-svg": "D'ausà 'o tag \"set\" pe' putè azzeccà nu target remoto/date/script a n'attribbuto mò è bluccato. Truvato 'o code>&lt;set to=\"$1\"&gt;</code> dint' 'o file SVG carrecato.",
+       "uploaded-setting-handler-svg": "'o SVG ca mpustasse l'attribbuto \"handler\" cu nu remoto/date/script è bluccato. Truvato <code>$1=\"$2\"</code> dint' 'o file SVG carrecato.",
        "uploaded-remote-url-svg": "SVG ca mpustasse n'attribbuto 'e stile cu n'URL remota bluccata. Truvate <code>$1=\"$2\"</code> int' 'o file carrecato SVG.",
        "uploaded-image-filter-svg": "Truvato filtro immaggene cu n'URL: <code>&lt;$1 $2=\"$3\"&gt;</code> int' 'o file SVG carrecato.",
        "uploadscriptednamespace": "Stu file SVG cuntene nu namespace '$1' nun permesso.",
index c806309..f5968ea 100644 (file)
        "showpreview": "Pokaż podgląd",
        "showdiff": "Podgląd zmian",
        "blankarticle": "<strong>Uwaga:</strong> Strona, którą masz zamiar utworzyć jest pusta.\nJeżeli klikniesz \"{{int:savearticle}}\" ponownie, strona zostanie utworzona bez jakiejkolwiek treści.",
-       "anoneditwarning": "<strong>Uwaga:</strong> Nie jesteś zalogowany. Twój adres IP będzie publicznie widoczny jeśli zrobisz dowolną zmianę. Jeśli <strong>[$1 zalogujesz się]</strong> lub <strong>[$2 stworzysz konto]</strong>, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.",
+       "anoneditwarning": "<strong>Uwaga:</strong> Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli <strong>[$1 zalogujesz się]</strong> lub <strong>[$2 utworzysz konto]</strong>, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.",
        "anonpreviewwarning": "''Nie jesteś zalogowany. Jeśli zapiszesz zmiany, w historii edycji strony zostanie umieszczony Twój adres IP.''",
        "missingsummary": "'''Uwaga:''' Nie wprowadz{{GENDER:|iłeś|iłaś|ono}} opisu zmian.\nJeżeli nie chcesz go wprowadzać, naciśnij przycisk „Zapisz” jeszcze raz.",
        "selfredirect": "<strong>Ostrzeżenie:</strong> Przekierowujesz tę stronę do niej samej.\nByć może został przez Ciebie wybrany zły cel przekierowania lub edytujesz niewłaściwą stronę.\nJeżeli ponownie klikniesz „{{int:savearticle}}”, przekierowanie zostanie utworzone.",
        "recentchangeslinked-toolbox": "Zmiany w linkowanych",
        "recentchangeslinked-title": "Zmiany w linkowanych z „$1”",
        "recentchangeslinked-summary": "Poniżej znajduje się lista ostatnich zmian na stronach linkowanych z podanej strony (lub we wszystkich stronach należących do podanej kategorii).\nStrony z [[Special:Watchlist|listy obserwowanych]] są '''wytłuszczone'''.",
-       "recentchangeslinked-page": "Tytuł strony",
+       "recentchangeslinked-page": "Tytuł strony:",
        "recentchangeslinked-to": "Pokaż zmiany nie na stronach linkowanych, a na stronach linkujących do podanej strony",
        "upload": "Prześlij plik",
        "uploadbtn": "Prześlij plik",
index 0455ebd..019df34 100644 (file)
        "delete-hook-aborted": "hook द्वारा अपाकरणक्रिया मध्ये एव स्थगिता । स्थगनस्य कारणं न दत्तम् ।",
        "no-null-revision": "\"$1\" एतस्मै पृष्ठाय नवीनं रिक्तं संस्करणं रचितुं न शक्यते",
        "badtitle": "अशुद्धं शिरोनाम",
-       "badtitletext": "à¤\88पà¥\8dसितं शीर्षकम् अमान्यं, रिक्तम्, अयोग्यम्, अन्यभाषीयं, भाषान्तरात् विकि-जालस्थलात् च अस्ति । पृष्ठशीर्षकाय अयोग्यानि अक्षराणि चिह्नानि वा तस्मिन् भवेयुः ।",
-       "title-invalid-empty": "à¤\88पà¥\8dसितं पृष्ठं रिक्तम् अस्ति उत नामाकाश एव अस्ति ।",
+       "badtitletext": "à¤\88षà¥\8dà¤\9fं शीर्षकम् अमान्यं, रिक्तम्, अयोग्यम्, अन्यभाषीयं, भाषान्तरात् विकि-जालस्थलात् च अस्ति । पृष्ठशीर्षकाय अयोग्यानि अक्षराणि चिह्नानि वा तस्मिन् भवेयुः ।",
+       "title-invalid-empty": "à¤\88षà¥\8dà¤\9fं पृष्ठं रिक्तम् अस्ति उत नामाकाश एव अस्ति ।",
        "title-invalid-utf8": "ईप्सिते पृष्ठे केलवं UTF-8 इत्यस्य अमान्यः अनुक्रमः अस्ति ।",
        "title-invalid-interwiki": "ईप्सिते लेखे आन्तरिकविकिपरिसन्धिः अस्ति, यस्याः शीर्षकत्वेन उपयोगः न शक्यते ।",
-       "title-invalid-talk-namespace": "à¤\88पà¥\8dसितं पृष्ठं सम्भाषणपृष्ठेन सह परिसन्धितम् अस्ति, यत् न विद्यते ।",
+       "title-invalid-talk-namespace": "à¤\88षà¥\8dà¤\9fं पृष्ठं सम्भाषणपृष्ठेन सह परिसन्धितम् अस्ति, यत् न विद्यते ।",
        "title-invalid-characters": "ईप्सिते पृष्ठे \"$1\" इत्येतानि अमान्यानि अक्षराणि सन्ति ।",
        "title-invalid-relative": "शीर्षकम् एकः सन्दर्भितः मार्गः स्थापयति । सन्दर्भितपृष्ठस्य शीर्षके (./, ../) अवैधं भवति । यतो हि यदा उपयोगकर्ता गवेषणे तेषां प्रयोगं करोति, तदा तेषाम् अधिकांशरूपम् अप्राप्यं भवति ।",
        "title-invalid-magic-tilde": "(<nowiki>~~~</nowiki>) इत्येतानि अमान्यानि टिल्ड्-अक्षाराणि ईप्सिते पृष्ठे सन्ति ।",
        "userlogin-resetlink": "स्वस्य प्रवेशविवरणानि विस्मृतानि किम् ?",
        "userlogin-resetpassword-link": "स्वस्य कूटशब्दः विस्मृतः किम् ?",
        "userlogin-helplink2": "प्रवेशविषयकं साहाय्यम्",
-       "userlogin-loggedin": "भवाता/भवतà¥\8dया à¤ªà¥\82रà¥\8dवसà¥\8dमादेव {{GENDER:$1|$1}} योजकत्वेन प्रवेशः प्राप्तः अस्ति । भिन्नयोजकत्वेन प्रवेष्टुं निम्नप्रपत्रं पूरयतु ।",
+       "userlogin-loggedin": "भवाता/भवतà¥\8dया à¤ªà¥\82रà¥\8dवमेव {{GENDER:$1|$1}} योजकत्वेन प्रवेशः प्राप्तः अस्ति । भिन्नयोजकत्वेन प्रवेष्टुं निम्नप्रपत्रं पूरयतु ।",
        "userlogin-createanother": "अन्यसदस्यता प्राप्यताम्",
        "createacct-emailrequired": "वि-पत्रसङ्केतः",
        "createacct-emailoptional": "वि-पत्रसङ्केतः (ऐच्छिकः)",
        "createacct-benefit-body2": "{{PLURAL:$1|पृष्ठम्|पृष्ठानि}}",
        "createacct-benefit-body3": "नवीन{{PLURAL:$1|योजकः|योजकाः}}",
        "badretype": "भवता/भवत्या लिखितौ कूटशब्दौ समानौ न स्तः ।",
-       "userexists": "भवता/भवतà¥\8dया à¤\88पà¥\8dसितà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤ªà¥\82रà¥\8dवसà¥\8dमादेव विद्यते । \nकृपया अपरं प्रयोक्तृनाम चिनोतु ।",
+       "userexists": "भवता/भवतà¥\8dया à¤\88षà¥\8dà¤\9fà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤ªà¥\82रà¥\8dवमेव विद्यते । \nकृपया अपरं प्रयोक्तृनाम चिनोतु ।",
        "loginerror": "प्रवेशे दोषः",
        "createacct-error": "सदस्यताप्राप्तिकाले दोषः",
        "createaccounterror": "$1 सदस्यता न प्राप्ता :",
        "login-migrated-generic": "भवतः/भवत्याः सदस्यत्वं स्थानान्तरितं, येन भवतः/भवत्याः प्रयोक्तृनाम एतस्मिन् विकि-प्रकल्पे न विद्यते ।",
        "loginlanguagelabel": "भाषा : $1",
        "suspicious-userlogout": "भवतः/भवत्याः \"निर्गम्यताम्\" इत्यस्य विज्ञप्तिं स्वीकर्तुं न शक्यते । यतः भवता/भवत्या एषा विज्ञप्तिं तृटियुक्तगवेक्षणात् प्रतिनिधि(proxy)-तः वा कृता ।",
-       "createacct-another-realname-tip": "वासà¥\8dतविà¤\95नाम à¤\90à¤\9aà¥\8dà¤\9bिà¤\95मà¥\8d à¤\85सà¥\8dति à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fनà¤\82 à¤µà¤¿à¤\95लà¥\8dपà¤\82 à¤¸à¤®à¤°à¥\8dथयति à¤\9aà¥\87तà¥\8d, à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¯à¥\8bà¤\97दानशà¥\8dरà¥\87यसà¥\8dय उल्लेखसमये अस्य उपयोगः भविष्यति ।",
+       "createacct-another-realname-tip": "वासà¥\8dतविà¤\95नाम à¤\90à¤\9aà¥\8dà¤\9bिà¤\95मà¥\8d à¤\85सà¥\8dति à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fनà¤\82 à¤µà¤¿à¤\95लà¥\8dपà¤\82 à¤¸à¤®à¤°à¥\8dथयति à¤\9aà¥\87तà¥\8d, à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¯à¥\8bà¤\97दानशà¥\8dरà¥\87यसà¤\83 उल्लेखसमये अस्य उपयोगः भविष्यति ।",
        "pt-login": "प्रविश्यताम्",
        "pt-login-button": "प्रविश्यताम्",
        "pt-createaccount": "सदस्यता प्राप्यताम्",
        "postedit-confirmation-created": "नूतनपृष्ठस्य रचना अभवत् ।",
        "postedit-confirmation-restored": "एतत् पृष्ठं पुनः सङ्गृहीतम् ।",
        "postedit-confirmation-saved": "सम्पादनं रक्षितम् ।",
-       "edit-already-exists": "नà¥\82तनपà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¿à¤°à¥\8dमाणà¤\82 à¤¨à¤¾à¤­à¥\82तà¥\8d à¥¤\nपà¥\82रà¥\8dवसà¥\8dमादेव एतत् पृष्ठं विद्यते ।",
+       "edit-already-exists": "नà¥\82तनपà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¿à¤°à¥\8dमाणà¤\82 à¤¨à¤¾à¤­à¥\82तà¥\8d à¥¤\nपà¥\82रà¥\8dवमेव एतत् पृष्ठं विद्यते ।",
        "defaultmessagetext": "मूलसन्देशः",
        "content-failed-to-parse": "$1 कृते $2 इत्यस्य विभाजनं विफलम् अभवत् । दोषः : $3",
        "invalid-content-data": "अयोग्यः लेखः",
        "rev-deleted-user": "(प्रयोक्तृनाम अपाकृतमस्ति)",
        "rev-deleted-event": "(संरक्षिताऽऽवल्यः(log) अपाकृताः)",
        "rev-deleted-user-contribs": "[प्रयोक्तृनाम अन्तर्जालसंविद् वा अपाकृतम् - योगदानाऽऽवल्याम् एतानि परिवर्तनानि निगूहितानि सन्ति ।]",
-       "rev-deleted-text-permission": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-deleted-text-permission": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "rev-suppressed-text-permission": "एतस्य पृष्ठस्य संस्कृतम् <strong>अपाकृतम्</strong> । तस्य विस्तृतं विवकणं [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} गूहितऽऽवल्याः] प्राप्यते ।",
-       "rev-deleted-text-unhide": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
-       "rev-suppressed-text-unhide": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
-       "rev-deleted-text-view": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-       "rev-suppressed-text-view": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-       "rev-deleted-no-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-deleted-text-unhide": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
+       "rev-suppressed-text-unhide": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
+       "rev-deleted-text-view": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-suppressed-text-view": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-deleted-no-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "rev-suppressed-no-diff": "भवान्/भवती संस्करणस्य भेदं द्रष्टुं न शक्नोति । कारणम् एतस्य किमपि संस्करणं <strong>अपाकृतमस्ति</strong> ।",
        "rev-deleted-unhide-diff": "भवान्/भवती संस्करणस्य भेदं द्रष्टुं न शक्नोति । कारणम् एतस्य किमपि संस्करणं <strong>अपाकृतमस्ति</strong> ।\n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
-       "rev-suppressed-unhide-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
-       "rev-deleted-diff-view": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-       "rev-suppressed-diff-view": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-suppressed-unhide-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
+       "rev-deleted-diff-view": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-suppressed-diff-view": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "rev-delundel": "दृश्यताम्/गोप्यताम्",
        "rev-showdeleted": "दर्श्यताम्",
        "revisiondelete": "संस्करणानि निष्कासयतु/पुनस्स्थापयतु",
        "revdelete-show-no-access": "$2 दिनाङ्कस्य $1 समयस्य वस्तुनि दोषः दृष्टः । तत् वस्तु निषिद्धावल्याम् अस्ति । भवान्/भवती तत् परिवर्तितुं न शक्नोति ।",
        "revdelete-modify-no-access": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तितवस्तुनि दोषः दृष्टः । तत् वस्तु निषिद्धावल्याम् अस्ति । भवान्/भवती तत् परिवर्तितुं न शक्नोति ।",
        "revdelete-modify-missing": "ID $1 इत्यस्य परिवर्तने दोषः : एतत् दत्तांशे न प्राप्तम् !",
-       "revdelete-no-change": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना :''' $2, $1 à¤\87तà¥\8dयसà¥\8dमिनà¥\8d à¤¯à¤¾à¤\9aितवसà¥\8dतà¥\82नि à¤ªà¥\82रà¥\8dवसà¥\8dमादेव विद्यन्ते ।",
+       "revdelete-no-change": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना :''' $2, $1 à¤\87तà¥\8dयसà¥\8dमिनà¥\8d à¤¯à¤¾à¤\9aितवसà¥\8dतà¥\82नि à¤ªà¥\82रà¥\8dवमेव विद्यन्ते ।",
        "revdelete-concurrent-change": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तनेषु दोषः दृष्टः । अस्य पृष्ठस्य यदा भवान्/भवती सम्पादनं करोति स्म, तदा अन्य कोऽपि अत्र परिवर्तनम् अकरोत् । अतः परिवर्तनस्य इतिहासे अन्यस्य नाम दृश्यते । \nकृपया स्वस्य संरक्षिताऽऽवलिं पश्यतु ।",
        "revdelete-only-restricted": "$2 दिनाङ्कस्य $1 समयस्य निगूढनकार्ये दोषः दृष्टः । भावान्/भवती दृश्यता-विकल्पे परिवर्तनं अकृत्वा प्रबन्धकेभ्यः एतत् परिवर्तनं निगूहितुं न शक्नोति ।",
        "revdelete-reason-dropdown": "* अपाकरणस्य सामान्यकारणानि\n** प्रतिकृत्यधिकारस्य उल्लङ्घनम्\n** अयोग्या टिप्पणी वैयक्तिकसूचनाधारः वा\n** अयोग्यं योजकनाम\n** हानिकारकसूचनाधारः",
        "prefs-watchlist": "निरीक्षासूचिः",
        "prefs-editwatchlist": "निरीक्षासूचिः सम्पाद्यताम्",
        "prefs-editwatchlist-label": "स्वस्य निरीक्षासूचौ प्रविष्टयः सम्पाद्यन्ताम् :",
-       "prefs-editwatchlist-edit": "सà¥\8dवसà¥\8dय à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवसà¥\8dयाà¤\82 à¤ªà¥\8dरविषà¥\8dà¤\9fयà¤\83 à¤¦à¥\83ष्यन्ताम्, अपाक्रियन्तां च",
+       "prefs-editwatchlist-edit": "सà¥\8dवसà¥\8dय à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवसà¥\8dयाà¤\82 à¤ªà¥\8dरविषà¥\8dà¤\9fयà¤\83 à¤¦à¥\83à¤्यन्ताम्, अपाक्रियन्तां च",
        "prefs-editwatchlist-raw": "अपक्वावेक्षणाऽऽवलिः सम्पाद्यताम्",
        "prefs-editwatchlist-clear": "स्वस्य निरीक्षासूचिः रिक्तीक्रियताम्",
        "prefs-watchlist-days": "निरीक्षासूचौ दर्शनियानि दिनानि :",
        "recentchangesdays-max": "$1 अधिकतम{{PLURAL:$1|दिनं|दिनानि}}",
        "recentchangescount": "फलकेषु सामान्यतया यानि परिवर्तनानि अभवन्, तेषां सङ्ख्या :",
        "prefs-help-recentchangescount": "अत्र नूतनपरिवर्तनानि, पृष्ठेतिहासः, संरक्षिताऽऽवल्यश्च अन्तर्भवन्ति ।",
-       "prefs-help-watchlist-token2": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\87à¤\83 à¤\9cालà¤\95रसà¥\8dय (web feed) à¤\97à¥\81पà¥\8dतà¤\95à¥\81à¤\9eà¥\8dà¤\9aिà¤\95ा à¤\85सà¥\8dतà¥\8dयà¥\87षा à¥¤ \nà¤\8fषा à¤\95à¥\81à¤\9eà¥\8dà¤\9aिà¤\95ा à¤¯à¤¸à¥\8dय à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤­à¤µà¤¿à¤·à¥\8dयति, à¤¸à¤\83 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤ªà¥\8dरभविषà¥\8dयति à¥¤ à¤\85तà¤\83 à¤\8fनाà¤\82 गुप्ततया स्थाप्यताम् ।\n[[Special:ResetTokens|गुप्तकुञ्चिकां परिवर्तयितुम् अत्र नुद्यताम् ।]]।",
+       "prefs-help-watchlist-token2": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\87à¤\83 à¤\9cालà¤\95रसà¥\8dय (web feed) à¤\97à¥\81पà¥\8dतà¤\95à¥\81à¤\9eà¥\8dà¤\9aिà¤\95ा à¤\85सà¥\8dतà¥\8dयà¥\87षा à¥¤ \nà¤\8fषा à¤\95à¥\81à¤\9eà¥\8dà¤\9aिà¤\95ा à¤¯à¤¸à¥\8dय à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤­à¤µà¤¿à¤·à¥\8dयति, à¤¸à¤\83 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤ªà¥\8dरभविषà¥\8dयति à¥¤ à¤\85तà¤\83 à¤\8fषा गुप्ततया स्थाप्यताम् ।\n[[Special:ResetTokens|गुप्तकुञ्चिकां परिवर्तयितुम् अत्र नुद्यताम् ।]]।",
        "savedprefs": "भवतः/भवत्याः इष्टतमानि रक्षितानि ।",
        "timezonelegend": "समयवलयः (time zone) :",
        "localtime": "स्थानीयसमयः :",
        "yourrealname": "वास्तविकनाम :",
        "yourlanguage": "भाषा :",
        "yourvariant": "भाषायाः सामग्रीवैविध्यम् :",
-       "prefs-help-variant": "एतस्य विकि-जालस्य पृष्ठगतविषयेषु भवता/भवत्या इष्टः प्रकारः वर्णविन्यासो वा प्रदर्शितुम् ।",
+       "prefs-help-variant": "à¤\8fतसà¥\8dय à¤µà¤¿à¤\95ि-à¤\9cालसà¥\8dय à¤ªà¥\83षà¥\8dठà¤\97तविषयà¥\87षà¥\81 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\87षà¥\8dà¤\9fà¤\83 à¤ªà¥\8dरà¤\95ारà¤\83 à¤µà¤°à¥\8dणविनà¥\8dयासà¥\8b à¤µà¤¾ à¤ªà¥\8dरदरà¥\8dशयितà¥\81मà¥\8d à¥¤",
        "yournick": "नूतनहस्ताक्षरम् :",
        "prefs-help-signature": "सम्भाषणपृष्ठेषु टिप्पणीं लिखित्वा अन्ते \"<nowiki>~~~~</nowiki>\" लिखतु । अनेन स्वस्य हस्ताक्षरेण सह टिप्पणीलेखनकालस्यापि उल्लेखः भविष्यति ।",
        "badsig": "प्रारूपरहितं (raw) अयोग्यं हस्ताक्षरम् ।\nHTML चिह्नानि पश्यतु ।",
        "prefs-help-email-others": "योजकपृष्ठ-सम्भाषणपृष्ठयोः माध्यमेन, वि-पत्रमाध्यमेन वा अन्ये योजकाः भवतः/भवत्याः सम्पर्कं कर्तुं शक्नुयुः ।\nसम्पर्केऽस्मिन् भवतः/भवत्याः वि-पत्रसङ्केतम् अन्ययोजकाः ज्ञातुं न प्रभवन्ति ।",
        "prefs-help-email-required": "वि-पत्रसङ्केतः अनिवार्यः ।",
        "prefs-info": "मूलसूचना",
-       "prefs-i18n": "अन्ताराष्ट्रिकरणम्",
+       "prefs-i18n": "à¤\85नà¥\8dताराषà¥\8dà¤\9fà¥\8dरियà¤\95रणमà¥\8d",
        "prefs-signature": "हस्ताक्षरम्",
        "prefs-dateformat": "दिनाङ्कस्य प्रारूपः",
        "prefs-timeoffset": "समयान्तरम्",
        "prefs-tokenwatchlist": "स्तोकम् (token)",
        "prefs-diffs": "अन्तरम्",
        "prefs-help-prefershttps": "आगामिप्रेवेशकाले एतत् परिवर्तनं सक्रियं भवष्यति ।",
-       "prefswarning-warning": "सà¥\8dवसà¥\8dय à¤\87षà¥\8dà¤\9fतमानि-पà¥\81षà¥\8dठà¥\87 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤¯à¤¤à¥\8d, à¤ªà¤°à¤¿à¤µà¤°à¥\8dतà¤\82 à¤\95à¥\83तà¤\82, à¤¤à¤¤à¥\8d à¤\8fतावता à¤¨ à¤°à¤\95à¥\8dषितमà¥\8d à¥¤\n\"$1\" à¤\8fततà¥\8d à¤\85नà¥\81दितà¥\8dवा यदि भवान्/भवती एतत् पृष्ठं त्यक्ष्यति, तर्हि परिवर्तनं रक्षितं न भविष्यति ।",
-       "prefs-tabs-navigation-hint": "परामरà¥\8dशà¤\83 : à¤ªà¥\8dलवनयà¥\8bà¤\83 (tabs) à¤®à¤§à¥\8dयà¥\87 à¤\97मनाà¤\97मनà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤µà¤¾à¤®à¤¤à¥\80रà¤\95à¥\81डà¥\8dमलसà¥\8dय, à¤¦à¤\95à¥\8dषिणतà¥\80रà¤\95à¥\81ण्मलस्य च उपयोगं कर्तुं शक्नोति ।",
+       "prefswarning-warning": "सà¥\8dवसà¥\8dय à¤\87षà¥\8dà¤\9fतमानि-पà¥\81षà¥\8dठà¥\87 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤¯à¤¤à¥\8d, à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤\95à¥\83तà¤\82, à¤¤à¤¤à¥\8d à¤\8fतावता à¤¨ à¤°à¤\95à¥\8dषितमà¥\8d à¥¤\n\"$1\" à¤\8fततà¥\8d à¤\85नà¥\82दà¥\8dय यदि भवान्/भवती एतत् पृष्ठं त्यक्ष्यति, तर्हि परिवर्तनं रक्षितं न भविष्यति ।",
+       "prefs-tabs-navigation-hint": "परामरà¥\8dशà¤\83 : à¤ªà¥\8dलवनयà¥\8bà¤\83 (tabs) à¤®à¤§à¥\8dयà¥\87 à¤\97मनाà¤\97मनà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤µà¤¾à¤®à¤¤à¥\80रà¤\95à¥\81डà¥\8dमलसà¥\8dय, à¤¦à¤\95à¥\8dषिणतà¥\80रà¤\95à¥\81ड्मलस्य च उपयोगं कर्तुं शक्नोति ।",
        "email-address-validity-valid": "वि-पत्रसङ्केतः मान्यः अस्ति इति प्रतीयते",
        "email-address-validity-invalid": "मान्यः वि-पत्रसङ्केतः लिख्यताम्",
        "userrights": "योजकाधिकारस्य प्रबन्धनम्",
        "userrights-nologin": "योजकेभ्यः अधिकारं दातुं प्रबन्धकत्वेन प्रवेशः आवश्यकः । [[Special:UserLogin|प्रविश्यताम्]]",
        "userrights-notallowed": "योजकेभ्यः अधिकारं दातुं, योजकान् अपाकर्तुं च ते अनुमतिः नास्ति ।",
        "userrights-changeable-col": "परिवर्तनार्हाः समूहाः",
-       "userrights-unchangeable-col": "परिवरà¥\8dतनम् अनर्हाः समूहाः",
-       "userrights-conflict": "सदस्याधिकारस्य परिवर्तनेषु अन्तर्विरोधः अस्ति ! कृपया स्वकृतानि परिवर्तनानि पुनरवलोक्य संरक्ष्यताम् ।",
+       "userrights-unchangeable-col": "परिवरà¥\8dतयितà¥\81म् अनर्हाः समूहाः",
+       "userrights-conflict": "सदसà¥\8dयाधिà¤\95ारसà¥\8dय à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¥\87षà¥\81 à¤\85नà¥\8dतरà¥\8dविरà¥\8bधà¤\83 à¤\85सà¥\8dति ! à¤\95à¥\83पया à¤¸à¥\8dवà¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤ªà¥\81नरवलà¥\8bà¤\95à¥\8dय à¤¸à¤\82रà¤\95à¥\8dषà¥\8dयनà¥\8dतामà¥\8d à¥¤",
        "userrights-removed-self": "भवता/भवत्या सफलतया स्वाधिकाराः अपाकृताः । अतः भवान्/भवती एतत् पृष्ठं द्रष्टुं न प्रभवति ।",
        "group": "समूहः :",
        "group-user": "योजकाः",
        "grouppage-suppress": "{{ns:project}}:अलक्ष्यम्",
        "right-read": "पृष्ठानि पठ्यन्ताम्",
        "right-edit": "पृष्ठानि सम्पाद्यन्ताम्",
-       "right-createpage": "पà¥\83षà¥\8dठानि à¤¨à¤¿à¤°à¥\8dमियन्ताम् ।(येषां सम्भाषणपृष्ठं न स्यात् ।)",
-       "right-createtalk": "समà¥\8dभाषणपà¥\83षà¥\8dठानि à¤¨à¤¿à¤°à¥\8dमियन्ताम्",
+       "right-createpage": "पà¥\83षà¥\8dठानि à¤¨à¤¿à¤°à¥\8dमà¥\80यन्ताम् ।(येषां सम्भाषणपृष्ठं न स्यात् ।)",
+       "right-createtalk": "समà¥\8dभाषणपà¥\83षà¥\8dठानि à¤¨à¤¿à¤°à¥\8dमà¥\80यन्ताम्",
        "right-createaccount": "नूतनप्रयोक्तृवृत्तान्तं रच्यन्ताम्",
        "right-minoredit": "लघुसम्पादनत्वेन अङ्कितं करोतु",
        "right-move": "शीर्षकाणि परिवर्त्यन्ताम्",
        "right-move-subpages": "उपपृष्ठैः सह पृष्ठं चालयतु",
-       "right-move-rootuserpages": "मà¥\82लयà¥\8bà¤\9cà¤\95पà¥\81ष्ठानि चाल्यन्ताम्",
+       "right-move-rootuserpages": "मà¥\82लयà¥\8bà¤\9cà¤\95पà¥\83ष्ठानि चाल्यन्ताम्",
        "right-move-categorypages": "वर्गपृष्ठानि चाल्यन्ताम्",
        "right-movefile": "सञ्चिकाः चाल्यन्ताम्",
        "right-suppressredirect": "पृष्ठं यदा चालयति, तदा मूलपृष्ठात् प्रतिप्रेषणं मास्तु ।",
        "right-autoconfirmed": "सार्वसङ्केत(IP)आधारितेन मूल्यनियन्त्रणेन सह अस्य सम्बन्धः नास्ति",
        "right-bot": "स्वसञ्चालितप्रणालित्वेन एतां स्वीक्रियताम्",
        "right-nominornewtalk": "सम्भाषणपृष्ठस्य लघुपरिवर्तनानां विषये मा सूच्यताम्",
-       "right-apihighlimits": "विदत्तसम्पर्कानुरूपविधेः (API) प्रश्नेषु उन्नतसीमाः उपयुज्यताम्",
+       "right-apihighlimits": "विदतà¥\8dतसमà¥\8dपरà¥\8dà¤\95ानà¥\81रà¥\82पविधà¥\87à¤\83 (API) à¤ªà¥\8dरशà¥\8dनà¥\87षà¥\81 à¤\89नà¥\8dनतसà¥\80माà¤\83 à¤\89पयà¥\81à¤\9cà¥\8dयनà¥\8dतामà¥\8d",
        "right-writeapi": "योग्यस्य विदत्तसम्पर्कानुरूपविधेः (API) उपयोगं करोतु",
        "right-delete": "पृष्ठानि अपाक्रियन्ताम्",
-       "right-bigdelete": "दीर्घेतिहासयुक्तपृष्ठानि अपाक्रियताम्",
+       "right-bigdelete": "दà¥\80रà¥\8dà¤\98à¥\87तिहासयà¥\81à¤\95à¥\8dतपà¥\83षà¥\8dठानि à¤\85पाà¤\95à¥\8dरियनà¥\8dतामà¥\8d",
        "right-deletelogentry": "योग्यसंरक्षिताऽऽवल्याः प्रविष्टयः (entries) अपाक्रियन्ताम्, पुनः स्थाप्यन्तां च",
        "right-deleterevision": "योग्यपृष्ठस्य संस्करणानि अपाक्रियन्ताम्",
        "right-deletedhistory": "अपाकृत-प्रविष्टीनाम् (Entry) इतिहासं पश्यतु (तत्सम्बद्धपाठं विना)",
        "right-deletedtext": "अपाकृतपाठस्य, अपाकृतसंस्करणस्य च परिवर्तनानि च पश्यतु",
        "right-browsearchive": "अपाकृतपृष्ठानि अन्विष्यन्ताम्",
        "right-undelete": "इदं पृष्ठं न अपाक्रियताम्",
-       "right-suppressrevision": "प्रबन्धकैः निगूहितानि, सम्मुखं स्थापितानि च विशिष्टसंस्करणानि पुनः पश्यतु, पुनस्थापयतु च",
-       "right-viewsuppressed": "à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤\97à¥\82हितà¤\82 à¤¸à¤\82सà¥\8dà¤\95à¥\83रणà¤\82 à¤¦à¥\83ष्यताम्",
+       "right-suppressrevision": "पà¥\8dरबनà¥\8dधà¤\95à¥\88à¤\83 à¤¨à¤¿à¤\97à¥\82हितानि, à¤¸à¤®à¥\8dमà¥\81à¤\96à¤\82 à¤¸à¥\8dथापितानि à¤\9a à¤µà¤¿à¤¶à¤¿à¤·à¥\8dà¤\9fसà¤\82सà¥\8dà¤\95रणानि à¤ªà¥\81नà¤\83 à¤ªà¤¶à¥\8dयतà¥\81, à¤ªà¥\81नसà¥\8dसà¥\8dथापयतà¥\81 à¤\9a",
+       "right-viewsuppressed": "à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤\97à¥\82हितà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤¦à¥\83श्यताम्",
        "right-suppressionlog": "वैयक्तिकसंस्करणानि दृश्यन्ताम्",
        "right-block": "अस्य योजकस्य सम्पादनानि अवरुध्यन्ताम्",
-       "right-blockemail": "वि-पतà¥\8dरपà¥\8dरà¥\87षयितà¥\81मà¥\8d à¤\8fनà¤\82 à¤¯à¥\8bà¤\9cà¤\95मà¥\8d à¤\85वरà¥\81दà¥\8dधà¥\8dयनà¥\8dताम्",
+       "right-blockemail": "वि-पतà¥\8dरपà¥\8dरà¥\87षयितà¥\81मà¥\8d à¤\8fषà¤\83 à¤¯à¥\8bà¤\9cà¤\95à¤\83 à¤\85वरà¥\81धà¥\8dयताम्",
        "right-hideuser": "प्रयोक्तृनाम अवरुध्यताम्, तत् अन्ययोजकेभ्यः गोप्यतां च",
-       "right-ipblock-exempt": "स्वयम् अवरोधितं, समूहावरोधिम् अन्तर्जालसङ्केतम् (IP) अवगण्य अग्रे गच्छतु",
+       "right-ipblock-exempt": "सà¥\8dवयमà¥\8d à¤\85वरà¥\8bधितà¤\82, à¤¸à¤®à¥\82हावरà¥\8bधितमà¥\8d à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\99à¥\8dà¤\95à¥\87तमà¥\8d (IP) à¤\85वà¤\97णà¥\8dय à¤\85à¤\97à¥\8dरà¥\87 à¤\97à¤\9aà¥\8dà¤\9bतà¥\81",
        "right-proxyunbannable": "प्रतिनिधीनां (of prxies) स्वयम्-अवरोधान् अवगण्य अग्रे गच्छतु",
-       "right-unblockself": "सà¥\8dवमà¥\8d à¤\85नवरुध्यताम्",
-       "right-protect": "सुरक्षास्तरं परिवर्त्यतां, क्रमबद्धानि सुरक्षितपृष्ठानि सम्पाद्यतां च",
+       "right-unblockself": "सà¥\8dवà¤\82 à¤®à¤¾ à¤\85वरुध्यताम्",
+       "right-protect": "सà¥\81रà¤\95à¥\8dषासà¥\8dतरà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतà¥\8dयताà¤\82, à¤\95à¥\8dरमबदà¥\8dधानि à¤¸à¥\81रà¤\95à¥\8dषितपà¥\83षà¥\8dठानि à¤¸à¤®à¥\8dपादà¥\8dयनà¥\8dताà¤\82 à¤\9a",
        "right-editprotected": "\"{{int:protect-level-sysop}}\"-त्वेन संरक्षितानि पृष्ठानि सम्पाद्यन्ताम्",
        "right-editsemiprotected": "\"{{int:protect-level-autoconfirmed}}\"-त्वेन संरक्षितानि पृष्ठानि सम्पाद्यन्ताम्",
        "right-editcontentmodel": "एकस्य पृष्ठस्य विषयोदाहरणं सम्पाद्यताम्",
        "right-edituserjs": "अन्यस्य योजकस्य JavaScript सञ्चिकाः सम्पाद्यन्ताम्",
        "right-editmyusercss": "स्वस्य CSS सञ्चिकाः सम्पाद्यन्ताम्",
        "right-editmyuserjs": "स्वस्य JavaScript सञ्चिकाः सम्पाद्यन्ताम्",
-       "right-viewmywatchlist": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\83 à¤¦à¥\83ष्यताम्",
-       "right-editmywatchlist": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\83 à¤¸à¤®à¥\8dपादà¥\8dयतामà¥\8d à¥¤ à¤\85तà¥\8dर à¤§à¥\8dयातवà¥\8dयà¤\82 à¤¯à¤¤à¥\8d, à¤µà¤¿à¤¨à¤¾ à¤\85धिà¤\95ारà¥\87ण à¤\85तà¥\8dर à¤\85नà¥\8dयपà¥\81ष्ठानि योजयितुम् अवसरः अस्ति ।",
-       "right-viewmyprivateinfo": "सà¥\8dवसà¥\8dय à¤µà¥\8dयà¤\95à¥\8dतिà¤\97तसूचनाः दृश्यन्ताम् (उदा. वि-पत्रसन्देशः, वास्तविकनाम)",
-       "right-editmyprivateinfo": "सà¥\8dवसà¥\8dय à¤µà¥\8dयà¤\95à¥\8dतिà¤\97तसूचनाः सम्पाद्यन्ताम् (उदा. वि-पत्रसन्देशः, वास्तविकनाम)",
+       "right-viewmywatchlist": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\83 à¤¦à¥\83à¤्यताम्",
+       "right-editmywatchlist": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\83 à¤¸à¤®à¥\8dपादà¥\8dयतामà¥\8d à¥¤ à¤\85तà¥\8dर à¤§à¥\8dयातवà¥\8dयà¤\82 à¤¯à¤¤à¥\8d, à¤µà¤¿à¤¨à¤¾ à¤\85धिà¤\95ारà¥\87ण à¤\85तà¥\8dर à¤\85नà¥\8dयपà¥\83ष्ठानि योजयितुम् अवसरः अस्ति ।",
+       "right-viewmyprivateinfo": "सà¥\8dवसà¥\8dय à¤µà¥\88यà¤\95à¥\8dतिà¤\95सूचनाः दृश्यन्ताम् (उदा. वि-पत्रसन्देशः, वास्तविकनाम)",
+       "right-editmyprivateinfo": "सà¥\8dवसà¥\8dय à¤µà¥\88यà¤\95à¥\8dतिà¤\95सूचनाः सम्पाद्यन्ताम् (उदा. वि-पत्रसन्देशः, वास्तविकनाम)",
        "right-editmyoptions": "स्वस्य इष्टतमानि सम्पाद्यन्ताम्",
        "right-rollback": "कस्मिंश्चित् पृष्ठे येन अन्तिमयोजकेन परिवर्तनं कृतं, तत् परिवर्तनं शीर्घ्रं पूर्ववत् करोतु",
        "right-markbotedits": "पूर्ववत् यानि सम्पादनानि कृतानि, तानि बॉट्-सम्पादनत्वेन अङ्कितं करोतु",
        "right-autopatrol": "स्वस्य सम्पादनानि निरीक्षितत्वेन अङ्क्यन्ताम्",
        "right-patrolmarks": "नूतनपरिवर्तनेषु निरीक्षित-अङ्कनं दृश्यताम्",
        "right-unwatchedpages": "अदृष्टपृष्टानाम् आवलिः दृश्यताम्",
-       "right-mergehistory": "पà¥\83षà¥\8dठानामà¥\8d à¤\87तिहासमà¥\8d विलीयताम्",
+       "right-mergehistory": "पà¥\83षà¥\8dठानामà¥\8d à¤\87तिहासà¤\83 विलीयताम्",
        "right-userrights": "सर्वयोजकाधिकारः सम्पाद्यताम्",
        "right-userrights-interwiki": "अन्यविकि-जालस्थानानां योजकाधिकारः सम्पाद्यताम्",
        "right-siteadmin": "दत्तांशनिधिं किलतु, अकिलितं च करोतु",
        "right-override-export-depth": "यानि पुष्ठानि पञ्चस्तरपर्यन्तं संलग्नानि सन्ति, तेषां सर्वेषां निर्यातं करोतु ।",
        "right-sendemail": "अन्ययोजकेभ्यः वि-पत्रं प्रेषयतु",
        "right-passwordreset": "निकुञ्चपुनारचितानां विद्युन्मानपत्राणाम् अवलोकनम् ।",
-       "right-managechangetags": "दतà¥\8dताà¤\82शातà¥\8d [[Special:Tags|à¤\9aिहà¥\8dनानि]] à¤¨à¤¿à¤°à¥\8dमियन्ताम्, अपाक्रियन्तां च",
+       "right-managechangetags": "दतà¥\8dताà¤\82शातà¥\8d [[Special:Tags|à¤\9aिहà¥\8dनानि]] à¤¨à¤¿à¤°à¥\8dमà¥\80यन्ताम्, अपाक्रियन्तां च",
        "right-applychangetags": "[[Special:Tags|चिह्नानि]] एकस्य परिवर्तनेन सह प्रयुञ्जताम् ।",
        "right-changetags": "स्वतन्त्रसंस्करणे, प्रवेशावल्यां च [[Special:Tags|चिह्नानि]] ऐच्छितरीत्या स्थापयतु, निष्कासयतु च",
        "newuserlogpage": "प्रयोक्तृ-सृजन-सूचिका",
        "action-userrights-interwiki": "योजकाधिकारान् अन्यविकिषु सम्पादयतु ।",
        "action-siteadmin": "पाठमूलस्य निशेधनम् अनिशेधनं च ।",
        "action-sendemail": "वि-पत्राणि प्रेषयतु ।",
-       "action-editmywatchlist": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\83 à¤¦à¥\83ष्यताम्",
-       "action-viewmywatchlist": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\83 à¤¦à¥\83ष्यताम्",
+       "action-editmywatchlist": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\83 à¤¦à¥\83à¤्यताम्",
+       "action-viewmywatchlist": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\83 à¤¦à¥\83à¤्यताम्",
        "action-viewmyprivateinfo": "स्वस्य व्यक्तिगसूचना दृश्यताम्",
        "action-editmyprivateinfo": "स्वस्य व्यक्तिगतसूचना सम्पाद्यताम्",
        "action-editcontentmodel": "पृष्ठस्य विषयवस्तोः प्रारूपं सम्पाद्यताम्",
        "unusedtemplates": "अनुपयुक्ताः प्राकृतयः ।",
        "unusedtemplatestext": "अस्मिन् पुटे {{ns:template}} नामस्थानयुतानि सर्वपुटानि अन्तर्गतानि । यानि अन्यपुटेषु न सन्ति । \nअस्य अपमर्जनात् पूर्वं सञ्चिकायाः अन्यानुबन्धान् परिशीलयतु ।",
        "unusedtemplateswlh": "अन्यानुबन्धाः ।",
-       "randompage": "‎अशृङ्खलं (random) पृष्ठं",
+       "randompage": "यादृच्छिकं (random) पृष्ठं",
        "randompage-nopages": "अधोनिदेशितनामस्थाने पुटानि न सन्ति । {{PLURAL:$2| एतन्नमस्थाने}} नास्ति : $1।",
        "randomincategory": "वर्गे यादृच्छिकं पृष्ठम्",
        "randomincategory-invalidcategory": "\"$1\" इत्येत् अमान्यं वर्गनाम अस्ति ।",
        "undeleterevdel": "यदि पुनस्थापनस्य फलस्वरूपशीर्षकपुटं, सञ्चिकां, पुनरावृत्तिं वा आंशिकरूपेण नाशयति चेत् एतत् न क्रियते ।\nएतादस्थितौ नूतनापनीताः पुनरावृत्तीनाम् अपचयनं असङ्गोपनं वा कुर्याट् ।",
        "undeletehistorynoadmin": "एतत्पुटम् अपमर्जितम् ।\nअधः अपमर्जनस्य कारणं दर्शितम् । अपमर्जनात् पूर्वं ये योजकाः सम्पादनं कृतवन्तः तेषां विषयः अपि दर्शिताः । \nअपमर्जितपुनरावृत्तीनां वास्तवपाठः केवलं प्रशासकै दृष्टुं शक्यते ।",
        "undelete-revision": "$3 द्वारा $1 ($4 दिनाङ्के $5 वादने) इत्येतेतस्य पृष्ठस्य अपाकृतं संस्करणम् ।",
-       "undeleterevision-missing": "à¤\85मानà¥\8dयमà¥\8d à¤\85थवा à¤µà¤¿à¤²à¥\81पà¥\8dतà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 \nà¤\95दाà¤\9aितà¥\8d à¤\85यà¥\8bà¤\97à¥\8dयपरिसनà¥\8dधà¥\87à¤\83 à¤\89पयà¥\8bà¤\97à¤\82 à¤\95रà¥\8bति, à¤\85थवा à¤¤à¥\81 à¤\8fततà¥\8d à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤ªà¥\82रà¥\8dवसà¥\8dमादेव पुनर्स्थापितम् अस्ति । लेखागारात् निष्कासितं स्याद्वा ।",
+       "undeleterevision-missing": "à¤\85मानà¥\8dयमà¥\8d à¤\85थवा à¤µà¤¿à¤²à¥\81पà¥\8dतà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 \nà¤\95दाà¤\9aितà¥\8d à¤\85यà¥\8bà¤\97à¥\8dयपरिसनà¥\8dधà¥\87à¤\83 à¤\89पयà¥\8bà¤\97à¤\82 à¤\95रà¥\8bति, à¤\85थवा à¤¤à¥\81 à¤\8fततà¥\8d à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤ªà¥\82रà¥\8dवमेव पुनर्स्थापितम् अस्ति । लेखागारात् निष्कासितं स्याद्वा ।",
        "undelete-nodiff": "पूर्वतनसंस्करणं न प्राप्तम् ।",
        "undeletebtn": "पुनस्स्थाप्यताम्",
        "undeletelink": "दृश्यताम्/प्रत्यानयताम्",
        "lockedbyandtime": "(द्वारा {{GENDER:$1|$1}} इत्यस्मिन् $2 अत्र $3)",
        "move-page": " $1 चालयतु ।",
        "move-page-legend": "पृष्ठं रक्ष्यताम्",
-       "movepagetext": "निमà¥\8dनपतà¥\8dरà¤\82 à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¾à¤® à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयिषà¥\8dयति à¥¤ à¤¤à¤¸à¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤®à¥\8dपà¥\82रà¥\8dणà¥\87तिहासà¥\8bऽपि à¤¨à¥\82तननामà¥\8dना à¤¦à¤°à¥\8dशिषà¥\8dयति à¥¤\nपà¥\81रातनà¤\82 à¤¶à¥\80रà¥\8dषà¤\95à¤\82 à¤¨à¥\82तनशà¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¥\8dरति à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87िषà¥\8dà¤\9fà¤\82 à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤\nमà¥\82लशà¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¥\8dरति à¤¨à¥\87तà¥\84नà¥\8d à¤ªà¥\81नारà¥\8dनिरà¥\8dदà¥\87शानà¥\8d à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¸à¥\8dवà¤\9aालितरà¥\82पà¥\87ण à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयितà¥\81मà¥\8d à¤\85पि à¤¶à¤\95à¥\8dनà¥\8bति à¥¤\nयदि à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fवà¤\82 à¤¨ à¤\95रà¥\8bति, à¤¤à¤°à¥\8dहि à¤\95à¥\83पया [[Special:DoubleRedirects|पà¥\81नरà¥\8dनिरà¥\8dदà¥\87शसà¥\8dय à¤¦à¥\8dवितà¥\8dवमà¥\8d]] à¤\89त [[Special:BrokenRedirects|à¤\96णà¥\8dडितपà¥\81नरà¥\8dनिरà¥\8dदà¥\87शà¤\83]] à¤\87तà¥\8dयनयà¥\8bà¤\83 à¤ªà¤°à¥\80à¤\95à¥\8dषणà¤\82 à¤¨à¤¿à¤¶à¥\8dà¤\9aयà¥\87न à¤\95रà¥\8bतà¥\81 à¥¤\nपरिसनà¥\8dधयà¤\83 à¤¯à¥\8bà¤\97à¥\8dयसà¥\8dथानà¤\82 à¤ªà¥\8dरति à¤\97à¤\9aà¥\8dà¤\9bà¥\87तà¥\8d à¤\87ति à¤¸à¥\81निशà¥\8dà¤\9aितà¤\95रणà¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¦à¤¾à¤¯à¤¿à¤¤à¥\8dवमà¥\8d à¤\85सà¥\8dति à¥¤\n\nयदि à¤¨à¤µà¥\80नशà¥\80रà¥\8dषà¤\95सà¥\8dय à¤¨à¤¾à¤®à¥\8dना à¤²à¥\87à¤\96à¤\83 à¤ªà¥\82रà¥\8dवसà¥\8dमादेव विद्यते, तर्हि पुनर्निर्देशः <strong> न </strong> भविष्यति । परन्तु नवीनशीर्षकस्य नाम्ना लेखः नास्ति उत कुत्रापि अनुप्रेषितं नास्ति चेदेव स्थानान्तरणस्य प्रक्रिया भविष्यति ।\n\nअर्थात् त्रुट्या स्थानान्तरणस्य प्रक्रिया अभवत् चेत्, पुरातनपृष्ठे स्थानान्तरणं कर्तुं प्रभविष्यति । तथा च विद्यामाने पृष्ठे सति भवान्/भवती स्थानान्तरणं कर्तुं न प्रभवति ।\n\n<strong>पूर्वसूचना !</strong>\n\nयदि पृष्ठम् अतिलोकप्रियम् अस्ति, तर्हि बृहत् आकस्मिकं परिवर्तनं भवितुं शक्नोति, अतः स्थानान्तरणात् प्राक् अन्तिमपरिणामस्य विषये पूर्वानुमानं करोतु ।",
-       "movepagetext-noredirectfixer": "निमà¥\8dनपतà¥\8dरà¤\82 à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¾à¤® à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयिषà¥\8dयति à¥¤ à¤¤à¤¸à¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤®à¥\8dपà¥\82रà¥\8dणà¥\87तिहासà¥\8bऽपि à¤¨à¥\82तननामà¥\8dना à¤¦à¤°à¥\8dशिषà¥\8dयति à¥¤\nपà¥\81रातनà¤\82 à¤¶à¥\80रà¥\8dषà¤\95à¤\82 à¤¨à¥\82तनशà¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¥\8dरति à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87िषà¥\8dà¤\9fà¤\82 à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤ à¤®à¥\82लशà¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¥\8dरति à¤¨à¥\87तà¥\84नà¥\8d à¤ªà¥\81नारà¥\8dनिरà¥\8dदà¥\87शानà¥\8d à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¸à¥\8dवà¤\9aालितरà¥\82पà¥\87ण à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयितà¥\81मà¥\8d à¤\85पि à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤¯à¤¦à¤¿ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fवà¤\82 à¤¨ à¤\95रà¥\8bति, à¤¤à¤°à¥\8dहि à¤\95à¥\83पया à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87शसà¥\8dय [[Special:DoubleRedirects|दà¥\8dवितà¥\8dवमà¥\8d]] à¤\89त [[Special:BrokenRedirects|à¤\96णà¥\8dडितपà¥\81नरà¥\8dनिरà¥\8dदà¥\87शà¤\83]] à¤\87तà¥\8dयनयà¥\8bà¤\83 à¤ªà¤°à¥\80à¤\95à¥\8dषणà¤\82 à¤¨à¤¿à¤¶à¥\8dà¤\9aयà¥\87न à¤\95रà¥\8bतà¥\81 à¥¤ \n\nपरिसनà¥\8dधयà¤\83 à¤¯à¥\8bà¤\97à¥\8dयसà¥\8dथानà¤\82 à¤ªà¥\8dरति à¤\97à¤\9aà¥\8dà¤\9bà¥\87तà¥\8d à¤\87ति à¤¸à¥\81निशà¥\8dà¤\9aितà¤\95रणà¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¦à¤¾à¤¯à¤¿à¤¤à¥\8dवमà¥\8d à¤\85सà¥\8dति à¥¤\nयदि à¤¨à¤µà¥\80नशà¥\80रà¥\8dषà¤\95सà¥\8dय à¤¨à¤¾à¤®à¥\8dना à¤²à¥\87à¤\96à¤\83 à¤ªà¥\82रà¥\8dवसà¥\8dमादेव विद्यते, तर्हि पुनर्निर्देशः न भविष्यति । परन्तु नवीनशीर्षकस्य नाम्ना लेखः नास्ति उत कुत्रापि अनुप्रेषितं नास्ति चेदेव स्थानान्तरणस्य प्रक्रिया भविष्यति ।\n\nअर्थात् त्रुट्या स्थानान्तरणस्य प्रक्रिया अभवत् चेत्, पुरातनपृष्ठे स्थानान्तरणं कर्तुं प्रभविष्यति । तथा च विद्यामाने पृष्ठे सति भवान्/भवती स्थानान्तरणं कर्तुं <strong>न</strong> प्रभवति ।\n\n<strong>पूर्वसूचना !</strong>\nयदि पृष्ठम् अतिलोकप्रियम् अस्ति, तर्हि बृहत् आकस्मिकं परिवर्तनं भवितुं शक्नोति, अतः स्थानान्तरणात् प्राक् अन्तिमपरिणामस्य विषये पूर्वानुमानं करोतु ।\"",
+       "movepagetext": "निमà¥\8dनपतà¥\8dरà¤\82 à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¾à¤® à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयिषà¥\8dयति à¥¤ à¤¤à¤¸à¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤®à¥\8dपà¥\82रà¥\8dणà¥\87तिहासà¥\8bऽपि à¤¨à¥\82तननामà¥\8dना à¤¦à¤°à¥\8dशिषà¥\8dयति à¥¤\nपà¥\81रातनà¤\82 à¤¶à¥\80रà¥\8dषà¤\95à¤\82 à¤¨à¥\82तनशà¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¥\8dरति à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87िषà¥\8dà¤\9fà¤\82 à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤\nमà¥\82लशà¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¥\8dरति à¤¨à¥\87तà¥\84नà¥\8d à¤ªà¥\81नारà¥\8dनिरà¥\8dदà¥\87शानà¥\8d à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¸à¥\8dवà¤\9aालितरà¥\82पà¥\87ण à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयितà¥\81मà¥\8d à¤\85पि à¤¶à¤\95à¥\8dनà¥\8bति à¥¤\nयदि à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fवà¤\82 à¤¨ à¤\95रà¥\8bति, à¤¤à¤°à¥\8dहि à¤\95à¥\83पया [[Special:DoubleRedirects|पà¥\81नरà¥\8dनिरà¥\8dदà¥\87शसà¥\8dय à¤¦à¥\8dवितà¥\8dवमà¥\8d]] à¤\89त [[Special:BrokenRedirects|à¤\96णà¥\8dडितपà¥\81नरà¥\8dनिरà¥\8dदà¥\87शà¤\83]] à¤\87तà¥\8dयनयà¥\8bà¤\83 à¤ªà¤°à¥\80à¤\95à¥\8dषणà¤\82 à¤¨à¤¿à¤¶à¥\8dà¤\9aयà¥\87न à¤\95रà¥\8bतà¥\81 à¥¤\nपरिसनà¥\8dधयà¤\83 à¤¯à¥\8bà¤\97à¥\8dयसà¥\8dथानà¤\82 à¤ªà¥\8dरति à¤\97à¤\9aà¥\8dà¤\9bà¥\87तà¥\8d à¤\87ति à¤¸à¥\81निशà¥\8dà¤\9aितà¤\95रणà¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¦à¤¾à¤¯à¤¿à¤¤à¥\8dवमà¥\8d à¤\85सà¥\8dति à¥¤\n\nयदि à¤¨à¤µà¥\80नशà¥\80रà¥\8dषà¤\95सà¥\8dय à¤¨à¤¾à¤®à¥\8dना à¤²à¥\87à¤\96à¤\83 à¤ªà¥\82रà¥\8dवमेव विद्यते, तर्हि पुनर्निर्देशः <strong> न </strong> भविष्यति । परन्तु नवीनशीर्षकस्य नाम्ना लेखः नास्ति उत कुत्रापि अनुप्रेषितं नास्ति चेदेव स्थानान्तरणस्य प्रक्रिया भविष्यति ।\n\nअर्थात् त्रुट्या स्थानान्तरणस्य प्रक्रिया अभवत् चेत्, पुरातनपृष्ठे स्थानान्तरणं कर्तुं प्रभविष्यति । तथा च विद्यामाने पृष्ठे सति भवान्/भवती स्थानान्तरणं कर्तुं न प्रभवति ।\n\n<strong>पूर्वसूचना !</strong>\n\nयदि पृष्ठम् अतिलोकप्रियम् अस्ति, तर्हि बृहत् आकस्मिकं परिवर्तनं भवितुं शक्नोति, अतः स्थानान्तरणात् प्राक् अन्तिमपरिणामस्य विषये पूर्वानुमानं करोतु ।",
+       "movepagetext-noredirectfixer": "निमà¥\8dनपतà¥\8dरà¤\82 à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¾à¤® à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयिषà¥\8dयति à¥¤ à¤¤à¤¸à¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤®à¥\8dपà¥\82रà¥\8dणà¥\87तिहासà¥\8bऽपि à¤¨à¥\82तननामà¥\8dना à¤¦à¤°à¥\8dशिषà¥\8dयति à¥¤\nपà¥\81रातनà¤\82 à¤¶à¥\80रà¥\8dषà¤\95à¤\82 à¤¨à¥\82तनशà¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¥\8dरति à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87िषà¥\8dà¤\9fà¤\82 à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤ à¤®à¥\82लशà¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¥\8dरति à¤¨à¥\87तà¥\84नà¥\8d à¤ªà¥\81नारà¥\8dनिरà¥\8dदà¥\87शानà¥\8d à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¸à¥\8dवà¤\9aालितरà¥\82पà¥\87ण à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयितà¥\81मà¥\8d à¤\85पि à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤¯à¤¦à¤¿ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fवà¤\82 à¤¨ à¤\95रà¥\8bति, à¤¤à¤°à¥\8dहि à¤\95à¥\83पया à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87शसà¥\8dय [[Special:DoubleRedirects|दà¥\8dवितà¥\8dवमà¥\8d]] à¤\89त [[Special:BrokenRedirects|à¤\96णà¥\8dडितपà¥\81नरà¥\8dनिरà¥\8dदà¥\87शà¤\83]] à¤\87तà¥\8dयनयà¥\8bà¤\83 à¤ªà¤°à¥\80à¤\95à¥\8dषणà¤\82 à¤¨à¤¿à¤¶à¥\8dà¤\9aयà¥\87न à¤\95रà¥\8bतà¥\81 à¥¤ \n\nपरिसनà¥\8dधयà¤\83 à¤¯à¥\8bà¤\97à¥\8dयसà¥\8dथानà¤\82 à¤ªà¥\8dरति à¤\97à¤\9aà¥\8dà¤\9bà¥\87तà¥\8d à¤\87ति à¤¸à¥\81निशà¥\8dà¤\9aितà¤\95रणà¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¦à¤¾à¤¯à¤¿à¤¤à¥\8dवमà¥\8d à¤\85सà¥\8dति à¥¤\nयदि à¤¨à¤µà¥\80नशà¥\80रà¥\8dषà¤\95सà¥\8dय à¤¨à¤¾à¤®à¥\8dना à¤²à¥\87à¤\96à¤\83 à¤ªà¥\82रà¥\8dवमेव विद्यते, तर्हि पुनर्निर्देशः न भविष्यति । परन्तु नवीनशीर्षकस्य नाम्ना लेखः नास्ति उत कुत्रापि अनुप्रेषितं नास्ति चेदेव स्थानान्तरणस्य प्रक्रिया भविष्यति ।\n\nअर्थात् त्रुट्या स्थानान्तरणस्य प्रक्रिया अभवत् चेत्, पुरातनपृष्ठे स्थानान्तरणं कर्तुं प्रभविष्यति । तथा च विद्यामाने पृष्ठे सति भवान्/भवती स्थानान्तरणं कर्तुं <strong>न</strong> प्रभवति ।\n\n<strong>पूर्वसूचना !</strong>\nयदि पृष्ठम् अतिलोकप्रियम् अस्ति, तर्हि बृहत् आकस्मिकं परिवर्तनं भवितुं शक्नोति, अतः स्थानान्तरणात् प्राक् अन्तिमपरिणामस्य विषये पूर्वानुमानं करोतु ।\"",
        "movepagetalktext": "सम्बद्धसम्भाषणपुटानि अनेन सह स्थानान्तरितानि भवन्ति अन्यथा  \n* भवान् पुटं अन्यस्थानान्तरं कुर्वन् अस्ति । \n* अस्मिन् नाम्नि सम्भाषणपुटं पूर्वनिर्मितमस्ति अस्थवा  \n* अधोदत्ताम् अर्गलनमञ्चूषाम् उत्पाटितवान् । \nअस्मिन् विषये यदि इच्छति तर्हि भवता पुटानि चालनीयानि अथवा संयोजनीयानि ।",
        "movearticle": "शीर्षकं परिवर्त्यताम् :",
        "moveuserpage-warning": "पूर्वसूचा : योजकपुटं चालयितुम् उद्युक्तः । स्मरतु केवलं पुटं स्थानान्तरितं भवति न तु योजकनाम परिवर्तनं न भविष्यति ।",
        "thumbnail_image-type": "चित्रस्य प्रकारः नानुमोदितः ।",
        "thumbnail_gd-library": "अपूर्णं जि.जि.ग्रन्थालयानुन्यासः : विनष्टः कार्यकलापः $1",
        "thumbnail_image-missing": "सञ्चिका विनष्टा इति भाति : $1",
-       "thumbnail_image-failure-limit": "à¤\8fततà¥\8d à¤¥à¤®à¥\8dबलाà¤\88नà¥\8d à¤¸à¤¿à¤¦à¥\8dधà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¸à¤¦à¥\8dयà¤\83 à¤\9cाताà¤\83 à¤¬à¤¹à¤µà¤\83 à¤\85सफलाà¤\83 à¤ªà¥\8dरयासाà¤\83 à¤¸à¤¨à¥\8dति ($1 à¤\89त à¤\85धिà¤\95ाà¤\83) à¥¤ à¤\95à¥\83पया à¤ªà¥\81नà¤\83 à¤ªà¥\8dरयासà¤\82 à¤\95रà¥\8bतà¥\81 ।",
+       "thumbnail_image-failure-limit": "à¤\8fततà¥\8d à¤¥à¤®à¥\8dबलाà¤\88नà¥\8d à¤¸à¤¿à¤¦à¥\8dधà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¸à¤¦à¥\8dयà¤\83 à¤\9cाताà¤\83 à¤¬à¤¹à¤µà¤\83 à¤\85सफलाà¤\83 à¤ªà¥\8dरयासाà¤\83 à¤¸à¤¨à¥\8dति ($1 à¤\89त à¤\85धिà¤\95ाà¤\83) à¥¤ à¤\95à¥\83पया à¤ªà¥\81नà¤\83 à¤ªà¥\8dरयततामà¥\8d ।",
        "import": "पृष्ठानां निर्यातं करोतु",
        "importinterwiki": "अन्यस्मात् विकि-जालस्थानात् पृष्ठानि आयातं करोतु",
        "import-interwiki-text": "आयातं कर्तुम् कञ्चन विकि-प्रकल्पं, किञ्चित् पृष्ठं च चिनोतु ।\nसंस्करणस्य दिनाङ्कं, सम्पादकस्य नाम यथा स्थाने भविष्यति ।\nअन्यस्मात् विकि-प्रकल्पात् आयातकृताः सर्वाः संरक्षिताऽऽवल्यः [[Special:Log/import|आयातसंरक्षिताऽऽल्यां]] भविष्यन्ति ।",
        "importuploaderrortemp": "अयातसञ्चिकानाम् उत्तारणम् असफलम् ।\nअनित्यः सम्पुटः विनष्टः ।",
        "import-parse-failure": "XML आयातस्य व्यवस्थायाः वैफल्यम् ।",
        "import-noarticle": "आयातं कर्तुं पुटानि न सन्ति ।",
-       "import-nonewrevisions": "नà¥\88à¤\95सà¥\8dयापि à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤\86यातà¤\83 à¤\85भवतà¥\8d à¥¤ (सरà¥\8dवाणि à¤¸à¤\82सà¥\8dà¤\95रणानि à¤ªà¥\82रà¥\8dवसà¥\8dमादेव विद्यामानि सन्ति अथवा दोषयुक्तत्वात् परित्यक्तानि)।",
+       "import-nonewrevisions": "नà¥\88à¤\95सà¥\8dयापि à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤\86यातà¤\83 à¤\85भवतà¥\8d à¥¤ (सरà¥\8dवाणि à¤¸à¤\82सà¥\8dà¤\95रणानि à¤ªà¥\82रà¥\8dवमेव विद्यामानि सन्ति अथवा दोषयुक्तत्वात् परित्यक्तानि)।",
        "xml-error-string": "$1 पङ्किः $2 इत्यस्मिन् , स्तम्भः $3 (बैट्स् $4): $5",
        "import-upload": "XML पाठान् उत्तारयतु ।",
        "import-token-mismatch": "सत्रस्य पाठानां नाशः ।\nपुनः प्रयतताम् ।",
        "tooltip-n-portal": "त्वया प्रकल्पविषये किं कर्तुं शक्यते, कुथं साहाय्यं प्राप्तव्यम्",
        "tooltip-n-currentevents": "वर्तमानप्रसङ्गानां पृष्ठभूमिका प्राप्यताम्",
        "tooltip-n-recentchanges": "नवीनपरिवर्तनानाम् आवलिः",
-       "tooltip-n-randompage": "à¤\85शà¥\83à¤\99à¥\8dà¤\96लं (random) पृष्ठं गम्यताम्",
+       "tooltip-n-randompage": "यादà¥\83à¤\9aà¥\8dà¤\9bिà¤\95ं (random) पृष्ठं गम्यताम्",
        "tooltip-n-help": "अन्वेषणस्थलम्",
        "tooltip-t-whatlinkshere": "अत्र सम्बद्धानां परिसन्धितानां विकि-पृष्ठानाम् आवलिः",
        "tooltip-t-recentchangeslinked": "एतत्पृष्ठसम्बद्धेषु पृष्ठेषु जातानि नवीनपरिवर्तनानि",
        "expand_templates_generate_rawhtml": "अपक्वं HTML दर्श्यताम्",
        "expand_templates_preview": "प्राग्दृश्यम् दर्श्यताम्",
        "expand_templates_preview_fail_html": "'''क्षम्यताम् ! प्रवेशसूचनायाः लोपत्वात् भवता/भवत्या कृतानि परिवर्तनानि रक्षितुं वयं न शक्तवन्तः ।\n\n<em>कारणं {{SITENAME}} इत्यत्र मूल-HTML-समर्थितं भवति । अतः JavaScript इत्यस्मात् रक्षितुं प्राग्दृश्यं निगूहितं भवति ।</em>\n\n<strong>भवता/भवत्या कृतं सम्पादनं यदि उचितमस्ति, तर्हि पुनः प्रयत्यताम् ।</strong>\n\nअधुनापि यदि सा एव समस्या अस्ति, तर्हि [[Special:UserLogout|निर्गमनं कृत्वा]] पुनः प्रविश्यताम् ।",
-       "expand_templates_preview_fail_html_anon": "<em>यतà¥\8b à¤¹à¤¿ {{SITENAME}} à¤\87तà¥\8dयसà¥\8dमिनà¥\8d à¤\85पà¤\95à¥\8dवà¤\82 HTML à¤¸à¤®à¤°à¥\8dथितमà¥\8d à¤\85सà¥\8dति, à¤¤à¤¥à¤¾ à¤\9a à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤ªà¥\8dरवà¥\87शà¤\82 à¤¨ à¤ªà¥\8dरापतà¥\8d, à¤\85तà¤\83 JavaScript à¤\87तà¥\8dयसà¥\8dमातà¥\8d à¤°à¤\95à¥\8dषितà¥\81à¤\82 à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¤\82 à¤¨à¤¿à¤\97à¥\82हितमà¥\8d </em>\n\n<strong>यदि à¤\8fषà¤\83 à¤¨à¥\8dयासà¤\99à¥\8dà¤\97तà¤\83 à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयपà¥\8dरयासà¤\83 à¤\85सà¥\8dति, à¤¤à¤°à¥\8dहि à¤\95à¥\83पया [[Special:UserLogin|पà¥\81नà¤\83पà¥\8dरविशà¥\8dय]] à¤ªà¥\8dरयासà¤\82 à¤\95रà¥\8bतà¥\81 </strong>",
+       "expand_templates_preview_fail_html_anon": "<em>यतà¥\8b à¤¹à¤¿ {{SITENAME}} à¤\87तà¥\8dयसà¥\8dमिनà¥\8d à¤\85पà¤\95à¥\8dवà¤\82 HTML à¤¸à¤®à¤°à¥\8dथितमà¥\8d à¤\85सà¥\8dति, à¤¤à¤¥à¤¾ à¤\9a à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤ªà¥\8dरवà¥\87शà¤\82 à¤¨ à¤ªà¥\8dरापतà¥\8d, à¤\85तà¤\83 JavaScript à¤\87तà¥\8dयसà¥\8dमातà¥\8d à¤°à¤\95à¥\8dषितà¥\81à¤\82 à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¤\82 à¤¨à¤¿à¤\97à¥\82हितमà¥\8d </em>\n\n<strong>यदि à¤\8fषà¤\83 à¤¨à¥\8dयासà¤\99à¥\8dà¤\97तà¤\83 à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयपà¥\8dरयासà¤\83 à¤\85सà¥\8dति, à¤¤à¤°à¥\8dहि à¤\95à¥\83पया [[Special:UserLogin|पà¥\81नà¤\83पà¥\8dरविशà¥\8dय]] à¤ªà¥\8dरयततामà¥\8d </strong>",
        "pagelanguage": "पृष्ठस्य भाषाचयकः",
        "pagelang-name": "पृष्ठम्",
        "pagelang-language": "भाषा",
index 57c5c02..88dbbf9 100644 (file)
        "subject-preview": "主旨/標題預覽:",
        "previewerrortext": "嘗試預覽您的變更時發生錯誤。",
        "blockedtitle": "使用者已被封鎖",
-       "blockedtext": "<strong>您的使用者名稱或 IP 位址以被封鎖。</strong>\n\n您被 $1 封鎖,\n原因爲 <em>$2</em>。\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細訊息。",
-       "autoblockedtext": "因先前的另一位使用者被 $1 封鎖,您的 IP 位址已被自動封鎖。\n原因是:\n\n:<em>$2</em>\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細資料。",
+       "blockedtext": "<strong>您的使用者名稱或 IP 位址以被封鎖。</strong>\n\n您被 $1 封鎖,\n原因爲 <em>$2</em>。\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細訊息。",
+       "autoblockedtext": "因先前的另一位使用者被 $1 封鎖,您的 IP 位址已被自動封鎖。\n原因是:\n\n:<em>$2</em>\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細資料。",
        "blockednoreason": "未說明原因",
        "whitelistedittext": "請先 $1 才可編輯頁面。",
        "confirmedittext": "在編輯此頁之前您必須確認您的電子郵件地址。\n請透過 [[Special:Preferences|偏好設定]] 設定並驗證您的電子郵件地址。",
        "trackingcategories-disabled": "已停用分類",
        "mailnologin": "沒有傳送位址",
        "mailnologintext": "您必須先 [[Special:UserLogin|登入]]\n並在 [[Special:Preferences|偏好設定]]\n中設定一個有效的電子郵件地址才可以傳送郵件給其他使用者。",
-       "emailuser": "Email 聯絡此使用者",
+       "emailuser": "Email 此使用者",
        "emailuser-title-target": "E-mail 聯絡此{{GENDER:$1|使用者}}",
        "emailuser-title-notarget": "E-mail 聯絡使用者",
        "emailpage": "E-mail 聯絡使用者",
        "tooltip-preview": "請在儲存前預覽您的變更!",
        "tooltip-diff": "顯示您對內容所做的變更",
        "tooltip-compareselectedversions": "檢視此頁兩個已選擇的修訂間的差異",
-       "tooltip-watch": "新增此頁面至您的監視清單",
+       "tooltip-watch": "加入此頁面至您的監視清單",
        "tooltip-watchlistedit-normal-submit": "移除標題",
        "tooltip-watchlistedit-raw-submit": "更新監視清單",
        "tooltip-recreate": "無論是否被刪除,重新建立該頁面。",
        "exif-headline": "標題",
        "exif-credit": "製作/提供者",
        "exif-source": "來源",
-       "exif-editstatus": "å\9c\96ç\89\87編輯狀態",
+       "exif-editstatus": "å\9c\96ç\89\87社è©\95狀態",
        "exif-urgency": "緊急性",
        "exif-fixtureidentifier": "夾具名稱",
        "exif-locationdest": "描繪地點",
index f0d8455..1ed571c 100644 (file)
@@ -1124,6 +1124,76 @@ class ApiResultTest extends MediaWikiTestCase {
                $data[ApiResult::META_CONTENT] = 'bar';
        }
 
+       /**
+        * @covers ApiResult
+        */
+       public function testAddMetadataToResultVars() {
+               $arr = array(
+                       'a' => "foo",
+                       'b' => false,
+                       'c' => 10,
+                       'sequential_numeric_keys' => array( 'a', 'b', 'c' ),
+                       'non_sequential_numeric_keys' => array( 'a', 'b', 4 => 'c' ),
+                       'string_keys' => array(
+                               'one' => 1,
+                               'two' => 2
+                       ),
+                       'object_sequential_keys' => (object)array( 'a', 'b', 'c' ),
+                       '_type' => "should be overwritten in result",
+               );
+               $this->assertSame( array(
+                       ApiResult::META_TYPE => 'kvp',
+                       ApiResult::META_KVP_KEY_NAME => 'key',
+                       ApiResult::META_PRESERVE_KEYS => array(
+                               'a', 'b', 'c',
+                               'sequential_numeric_keys', 'non_sequential_numeric_keys',
+                               'string_keys', 'object_sequential_keys'
+                       ),
+                       ApiResult::META_BC_BOOLS => array( 'b' ),
+                       ApiResult::META_INDEXED_TAG_NAME => 'var',
+                       'a' => "foo",
+                       'b' => false,
+                       'c' => 10,
+                       'sequential_numeric_keys' => array(
+                               ApiResult::META_TYPE => 'array',
+                               ApiResult::META_BC_BOOLS => array(),
+                               ApiResult::META_INDEXED_TAG_NAME => 'value',
+                               0 => 'a',
+                               1 => 'b',
+                               2 => 'c',
+                       ),
+                       'non_sequential_numeric_keys' => array(
+                               ApiResult::META_TYPE => 'kvp',
+                               ApiResult::META_KVP_KEY_NAME => 'key',
+                               ApiResult::META_PRESERVE_KEYS => array( 0, 1, 4 ),
+                               ApiResult::META_BC_BOOLS => array(),
+                               ApiResult::META_INDEXED_TAG_NAME => 'var',
+                               0 => 'a',
+                               1 => 'b',
+                               4 => 'c',
+                       ),
+                       'string_keys' => array(
+                               ApiResult::META_TYPE => 'kvp',
+                               ApiResult::META_KVP_KEY_NAME => 'key',
+                               ApiResult::META_PRESERVE_KEYS => array( 'one', 'two' ),
+                               ApiResult::META_BC_BOOLS => array(),
+                               ApiResult::META_INDEXED_TAG_NAME => 'var',
+                               'one' => 1,
+                               'two' => 2,
+                       ),
+                       'object_sequential_keys' => array(
+                               ApiResult::META_TYPE => 'kvp',
+                               ApiResult::META_KVP_KEY_NAME => 'key',
+                               ApiResult::META_PRESERVE_KEYS => array( 0, 1, 2 ),
+                               ApiResult::META_BC_BOOLS => array(),
+                               ApiResult::META_INDEXED_TAG_NAME => 'var',
+                               0 => 'a',
+                               1 => 'b',
+                               2 => 'c',
+                       ),
+               ), ApiResult::addMetadataToResultVars( $arr ) );
+       }
+
        /**
         * @covers ApiResult
         */
index da62bb0..21345ac 100644 (file)
@@ -105,6 +105,7 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
 
                $wgRequest = new FauxRequest( $params, true, $session );
                RequestContext::getMain()->setRequest( $wgRequest );
+               RequestContext::getMain()->setUser( $wgUser );
 
                // set up local environment
                $context = $this->apiContext->newTestContext( $wgRequest, $wgUser );